๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
C++

[C++] ๋ช…ํ’ˆ c++ 6์žฅ

by Meaning_ 2022. 12. 4.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿฅ‘ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—

 

static ๋ฉค๋ฒ„๋Š” ๋ฐ˜๋“œ์‹œ ์ „์—ญ๊ณต๊ฐ„์— ์„ ์–ธํ•จ์œผ๋กœ์จ ๋ณ€์ˆ˜๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์•ผ ํ•œ๋‹ค.

static ๋ฉค๋ฒ„ํ•จ์ˆ˜๋Š” ์˜ค์ง static ๋ฉค๋ฒ„๋“ค๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

non-static ๋ฉค๋ฒ„ํ•จ์ˆ˜๋Š” static๋ฉค๋ฒ„,non-static ๋ฉค๋ฒ„ ๋ชจ๋‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

this์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๋‹ค. (๊ฐ์ฒด๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์ „๋ถ€ํ„ฐ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ)

 

2๋ฒˆ

 

#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>

using namespace std;

class Person {
	int id;
	double weight;
	string name;

public:
	Person() {
		id = 1;
		name = "Grace";
		weight = 20.5;
	};
	Person(int id,string name) {
		this->id = id;
		this->name = name;
		weight = 20.5;

	}
	Person(int id, string name, double weight) {
		this->id = id;
		this->name = name;
		this->weight = weight;

	}
	void show() {
		cout << id << ' ' << weight << ' ' << name << endl;
	}
};

int main() {

	Person grace = Person(); 
	Person ashely = Person(2, "Ashely");
	Person helen=Person(3, "Helen", 32.5);
	grace.show();
	ashely.show();
	helen.show();
}

(2) ๋””ํดํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ผ์„ ๋•Œ 

#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>

using namespace std;

class Person {
	int id;
	double weight;
	string name;

public:
	Person(int id = 1, string name = "Grace", double weight = 20.5);
	void show() {
		cout << id << ' ' << weight << ' ' << name << endl;
	}
};

Person::Person(int id, string name, double weight) {
	this->id = id;
	this->name = name;
	this->weight = weight;
}

int main() {

	Person grace = Person(); 
	Person ashely = Person(2, "Ashely");
	Person helen=Person(3, "Helen", 32.5);
	grace.show();
	ashely.show();
	helen.show();
}

์šฐ์„  ๋””ํดํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ •์˜ํ•ด์ค€ ๋‹ค์Œ์—

๋‚˜์ค‘์— ๋ณ€์ˆ˜๋กœ ๋“ค์–ด์˜ฌ ์• ๋“ค์„ ์œ„ํ•ด์„œ ์ „์—ญ์— ๋‹ค์‹œ ์ •์˜!

 

๋ชจ๋“  default parameter๋Š” ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์Œ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

void printValue(int x=10, int y); // not allowed

 

5๋ฒˆ

 

#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>

using namespace std;

class ArrayUtility {

public:
	
	static void intToDouble(int source[], double dest[], int size);
	static void doubleToInt(double source[],int dest[], int size);

};

void ArrayUtility::intToDouble(int source[], double dest[], int size) {
	for (int i = 0; i < size; i++) {
		dest[i] = (double)source[i];
	}
}

void ArrayUtility::doubleToInt(double source[], int dest[], int size) {
	for (int i = 0; i < size; i++) {
		dest[i] = (int)source[i];
	}
}



int main() {
	int x[] = { 1,2,3,4,5 };
	double y[5];
	double z[] = { 9.9,8.8,7.7,6.6,5.6 };
	ArrayUtility::intToDouble(x, y, 5);
	for (int i = 0; i < 5; i++) {
		cout << y[i] << ' ';
	}
	cout << endl;

	ArrayUtility::doubleToInt(z, x, 5);
	for (int i = 0; i < 5; i++) {
		cout << x[i] << ' ';
	}
	cout << endl;
	

}

 

 

7๋ฒˆ

 

#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>

using namespace std;

class Random {
public:
	static void seed() {
		srand((unsigned)time(0));

	}

	static int nextInt(int min = 0, int max = 32767);
	static char nextAlphabet();
	static double nextDouble();
};


//void Random::seed() {}; // ์ด๋ ‡๊ฒŒ ์žฌ์ •์˜ํ•˜๋ฉด ์•ˆ๋จ ์ด๋ฏธ ํด๋ž˜์Šค์—์„œ ์„ ์–ธ๋œ ์• ์ด๊ธฐ ๋•Œ๋ฌธ
int Random::nextInt(int min,int max) { // ๋””ํดํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์žฌ์ •์˜ ํ•˜๋ฉด ์•ˆ๋จ! ๊ทธ๋ƒฅ min,max๋กœ ๋‘˜๊ฒƒ
	return rand() % (max - min + 1) + min; //srand๊ฐ€ ์•„๋‹ˆ๋ผ rand๋‹ค!
};
char Random::nextAlphabet() {
	//A 65~90 a 97~122
	int randArr[2];
	randArr[0] = rand() % (90 - 65+1) + 65; //rand()%(b-a+1)+a
	randArr[1] = rand() % (122 - 97+1) + 97;
	int randIdx;
	randIdx = rand() % 2;


	return randArr[randIdx];

};
double Random::nextDouble() {

	//์‹ค์ˆ˜ ๋‚œ์ˆ˜
	//RAND_MAX๋ž€ rand ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€๊ฐ’

	double d = Random::nextInt();
	return d / RAND_MAX;
};



int main() {
	cout << "1์—์„œ 100๊นŒ์ง€ ๋žœ๋คํ•œ ์ •์ˆ˜ 10๊ฐœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค" << endl;
	Random::seed();
	for (int i = 0; i < 10; i++) {
		cout << Random::nextInt(1, 100) << ' ';
	}
	cout << endl;

	cout << "์•ŒํŒŒ๋ฒณ์„ ๋žœ๋คํ•˜๊ฒŒ 10๊ฐœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." << endl;
	for (int i = 0; i < 10; i++) {
		cout << Random::nextAlphabet() << ' ';
	}
	cout << endl;

	cout << "๋žœ๋คํ•œ ์‹ค์ˆ˜ 10๊ฐœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." << endl;
	for (int i = 0; i < 5; i++) {
		cout << Random::nextDouble() << ' ';
	}
	cout << endl;
	for (int i = 0; i < 5; i++) {
		cout << Random::nextDouble() << ' ';
	}

}

 

 

1๋ฒˆ

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>
 
using namespace std;
 
int add(int* arr, int n) {
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }
 
    return sum;
}
 
int add(int* arr, int n, int* arr2) {
 
    return add(arr, n) + add(arr2, n);
 
}
 
int main() {
    
    int a[] = { 1,2,3,4,5 };
    int b[] = { 6,7,8,9,10 };
 
    int c = add(a, 5);
    int d = add(a, 5, b);
    cout << c << endl;//15
    cout << d << endl;//55
}
cs

 

๋„ˆ๋ฌด ๋‹น์—ฐํ•œ ์†Œ๋ฆฌ์ธ๋ฐ addํ•จ์ˆ˜ mainํ•จ์ˆ˜ ๋ฐ–์— ์ผ์–ด์•ผ ํ–ˆ๋‹ค. ๊ณ„์† ์ž๋ฐ”๋งŒ ์“ฐ๋‹ค๋ณด๋‹ˆ ์–ด์ฒ˜๊ตฌ๋‹ˆ ์—†๋Š” ์ง“๋„ ํ•˜๋Š”๋“ฏ..ใ…Ž

 

 

2๋ฒˆ

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>
 
using namespace std;
 
int big(int num1, int num2) {
    int m = (num1 > num2) ? num1 : num2;
    if (m > 100) {
        return 100;
    }
    else {
        return m;
    }
}
 
int big(int num1, int num2, int num3) {
    return big(num1, num2) > num3 ? num3 : big(num1, num2);
}
 
 
int main() {
    int x = big(35);
    int y = big(30060);
    int z = big(306050);
 
    cout << x << ' ' << y << ' ' << z << endl;
}
cs

 

 

 

4๋ฒˆ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>
 
using namespace std;
 
class MyVector {
    int* mem;
    int size;
 
public:
    
    MyVector(int n=100int val=0);
    ~MyVector() { delete[] mem; }
 
    void show();
};
 
 
 
 
MyVector::MyVector(int n, int val) {
    mem = new int[n];
    size = n;
    for (int i = 0; i < size; i++) {
        mem[i] = val;
    }
}
 
void MyVector::show() {
    for (int i = 0; i < size; i++) {
        cout << mem[i] << endl;
    }
}
 
int main() {
    MyVector a;
    MyVector b(3,10);
    a.show();
    b.show();
 
}
cs

 

์œ„์—์„œ ์„ ์–ธํ• ๋• ๋””ํดํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์จ์ฃผ๊ณ , ์ •์˜ํ• ๋•Œ๋Š” ์•ˆ์จ์ฃผ๋Š”๊ฒŒ ์ •์„์ธ๊ฒƒ ๊ฐ™๋‹ค!

 

 

 

6๋ฒˆ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>
 
using namespace std;
 
class ArrayUtility2 {
 
public:
    //
    static int* concat(int s1[], int s2[], int size);
    
    static int* remove(int s1[], int s2[],int size, int& retSize);
 
};
 
int* ArrayUtility2::remove(int s1[], int s2[], int size,int& retSize) {
 
    retSize = size;
    int idx = 0;
 
    int* arr = new int[size];
 
    for (int i = 0; i < size; i++) {
        int std = s1[i];
        for (int j = 0; j < size; j++) {
            if (std == s2[j]) {
                
                retSize--;
                
                break;
            }
            
            
        }
        arr[idx] = std;
        idx++;
        
    }
    
    return arr;
 
}
 
int* ArrayUtility2::concat(int s1[], int s2[], int size) {
    int* arr=new int[size*2];
 
    int i;
    for (i = 0; i < 5; i++) {
        arr[i] = s1[i];
    }
 
    for (int j = 0; j < 5; j++) {
        arr[i + j] = s2[j];
    }
    
    return arr;
}
 
 
 
int main() {
 
    int x[5], y[5];
 
    cout << "์ •์ˆ˜๋ฅผ 5 ๊ฐœ ์ž…๋ ฅํ•˜๋ผ. ๋ฐฐ์—ด x์— ์‚ฝ์ž…ํ•œ๋‹ค>>";
    for (int i = 0; i < 5; i++) cin >> x[i];
 
    cout << "์ •์ˆ˜๋ฅผ 5 ๊ฐœ ์ž…๋ ฅํ•˜๋ผ. ๋ฐฐ์—ด y์— ์‚ฝ์ž…ํ•œ๋‹ค>>";
    for (int i = 0; i < 5; i++) cin >> y[i];
 
    int* p = ArrayUtility2::concat(x, y, 5);
    cout << "ํ•ฉ์นœ ์ •์ˆ˜ ๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค" << endl;
    for (int i = 0; i < 10; i++) cout << p[i] << ' ';
    cout << endl;
 
    int retSize;
    int* q = ArrayUtility2::remove(x, y, 5, retSize);
    cout << "๋ฐฐ์—ด x[]์—์„œ y[]๋ฅผ ๋บ€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ฐœ์ˆ˜๋Š” " << retSize << endl;
    for (int i = 0; i < retSize; i++) cout << q[i] << ' ';
    cout << endl;
 
    delete[] p;
    delete[] q;
 
 
 
 
 
}
cs

9๋ฒˆ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <string>
#include<cmath>
#include <ctime>
#include<algorithm>
 
using namespace std;
 
class Board {
    
public:
    static string* text;
    static int size;
    static void add(string s);
    static void print();
};
 
int Board::size = 0;
string* Board::text = new string[100];
 
 
 
void Board::add(string s) {
    text[size= s;
    size++;
     
}
 
void Board::print() {
 
    cout<<"********** "<<"๊ฒŒ์‹œํŒ์ž…๋‹ˆ๋‹ค."<<" **********"<<endl;
    for (int i = 0; i < size; i++) {
        cout << i << ": ";
        cout << text[i] << endl;
    }
}
 
 
 
int main() {
    Board::add("์ค‘๊ฐ„๊ณ ์‚ฌ๋Š” ๊ฐ๋… ์—†๋Š” ์ž์œจ ์‹œํ—˜์ž…๋‹ˆ๋‹ค.");
    Board::add("์ฝ”๋”ฉ ๋ผ์šด์ง€ ๋งŽ์ด ์ด์šฉํ•ด ์ฃผ์„ธ์š”.");
    Board::print();
    Board::add("์ง„์†Œ๋ฆฐ ํ•™์ƒ์ด ๊ฒฝ์ง„๋Œ€ํšŒ ์ž…์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ถ•ํ•˜ํ•ด์ฃผ์„ธ์š”.");
    Board::print();
}
cs

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€