MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

πŸ’Ž C,C++,C#/C#

Λšβ‚Šβœ©β€§β‚Š C# 정리 Λšβ‚Šβœ©β€§β‚Š

HYEJU01 2024. 4. 14. 21:18

객체지ν–₯ ν”„λ‘œκ·Έλž¨ μ΄λž€?
객체지ν–₯ κ°œλ…(μΊ‘μŠν™”, μ •λ³΄μ€λ‹‰ ...)
ν”„λ‘œκ·Έλž¨ λΆ„석(객관식)
μž…μΆœλ ₯(cin, cout)
클래슀(μΈμŠ€ν„΄μŠ€) κ΄€κ³„, κ΅¬μ„±
객체 (μ‚¬μš©)  λ™μ μƒμ„±/정적생성
μ ‘κ·Όμ œμ–΄ (public, private, protected)
멀버 λ³€μˆ˜/ν•¨μˆ˜ μ™ΈλΆ€μ •μ˜
μ˜€λ²„λ‘œλ”©(μƒμ„±μž)/ μ˜€λ²„라이딩
UML
μƒμ„±μž/μ†Œλ©Έμž (μˆœμ„œ)
멀버 μ΄ˆκΈ°ν™”(μƒμˆ˜ μ΄ˆκΈ°ν™” , μ΄ˆκΈ°ν™” λ°©λ²• 3가지.)
this ν¬μΈν„°
정적멀버(static)
상속
λΆ€λͺ¨μƒμ„±μž λͺ…μ‹œμ  ν˜ΈμΆœ

 

 

 


객체지ν–₯ ν”„λ‘œκ·Έλž¨ μ΄λž€?

데이터와 ν•¨μˆ˜λ₯Ό ν•˜λ‚˜μ˜ λ©μ–΄λ¦¬λ‘œ λ¬Άμ–΄μ„œ μƒκ°ν•˜λŠ” 방법이닀.
데이터와 ν•¨μˆ˜λ₯Ό 객체둜 λ¬ΆλŠ” 것을 μΊ‘μŠν™”(encapsulation)라고 λΆ€λ₯Έλ‹€.


- 데이터 μ•Œκ³ λ¦¬μ¦˜ λ‘˜ λ‹€ μ€‘μš”ν•΄μ§
- 데이터 μ•Œκ³ λ¦¬μ¦˜μ„ class둜 λ¬Άμ–΄μ„œ 객체라고 뢀름
- 객체 = μ‹€μ œ 세계λ₯Ό λͺ¨λΈλ§ν•¨

객체지ν–₯의 μ΅œμ’… λͺ©ν‘œ
- μ½”λ“œμ˜ μž¬μ‚¬μš©
객체지ν–₯

- μ‹€μ œ 세계λ₯Ό λͺ¨λΈλ§ν•΄μ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” 방법

객체

- κ°μ²΄λŠ” μƒνƒœμ™€ λ™μž‘μ„ κ°€μ§€κ³ μžˆμŒ
- 객체 μƒνƒœstate = 속성 (λ³€μˆ˜νƒ€μž…
- λ™μž‘ behavior = 객체가 μ·¨ν•  수 μžˆλŠ” λ™μž‘ (ν•¨μˆ˜

클래슀

- ν΄λž˜μŠ€λŠ” 객체λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ
- 객체λ₯Ό λ§Œλ“œλŠ” 섀계도

μΈμŠ€ν„΄μŠ€

- ν΄λž˜μŠ€λ‘œλΆ€ν„° λ§Œλ“€μ–΄μ§„ 객체듀을 κ·Έ 클래슀의 μΈμŠ€ν„΄μŠ€


객체지ν–₯ κ°œλ…(μΊ‘μŠν™”, 정보은닉 ...)

- 1μΊ‘μŠν™” ::데이터와 ν•¨μˆ˜(μ—°μ‚°)λ₯Ό 객체 μ•ˆμ— λ„£μ–΄ λ¬ΆλŠ” 것
- 2정보은닉:: private 객체 λ‚΄λΆ€μ˜ 데이터와 κ΅¬ν˜„μ˜ μ„ΈλΆ€ 사항을 μ™ΈλΆ€ μ„Έκ³„μ—μ„œ κ°μΆ”λŠ” 것
- 3상속::λΆ€λͺ¨ν΄λž˜μŠ€λ₯Ό μ΄μ–΄λ°›μŒ
기쑴의 μ½”λ“œλ₯Ό μž¬ν™œμš©ν•˜κΈ° μœ„ν•œ 기법, 
이미 μž‘μ„±λœ 클래슀(λΆ€λͺ¨ν΄λž˜μŠ€)λ₯Ό 이어 λ°›μ•„μ„œ μƒˆλ‘œμš΄ 클래슀 (μžμ‹ 클래슀) λ₯Ό μƒμ„±ν•˜λŠ” 기법
- 4λ‹€ν˜•μ„±:: 객체의 λ™μž‘μ΄ 상황에 따라 달라짐 
객체가 μ·¨ν•˜λŠ” λ™μž‘νžˆ 상황에 λ”°λΌμ„œ λ‹¬λΌμ§€λŠ” 것을 μ˜λ―Έν•œλ‹€ -> ν•¨μˆ˜ μ΄λ¦„μ˜ μž¬μ‚¬μš©

 

ν”„λ‘œκ·Έλž¨ 뢄석(객관식)

 

 

 

μž…μΆœλ ₯(cin, cout)

 

C++μ—μ„œλŠ” μ½˜μ†” μž…λ ₯은 cin 객체가, μ½˜μ†” 좜λ ₯은 cout 객체가 λ‹΄λ‹Ή
이듀은 λͺ¨λ‘ iostream λΌμ΄λΈŒλŸ¬λ¦¬μ— 포함

# Cout 객체

- λ‹€μ–‘ν•œ 데이터 좜λ ₯
- << μ‚½μž…μ—°μ‚°μž
- cout << 좜λ ₯데이터 ;

# Cin 객체

- λ‹€μ–‘ν•œ 데이터 μž…λ ₯ λ°›μŒ
- >> μΆ”μΆœ μ—°μ‚°μž
- cin >> μ €μž₯ν• λ³€μˆ˜;


cin >> num; //μž…λ ₯
 cout << "λ²ˆν˜ΈλŠ” : " << num << "μž…λ‹ˆλ‹€" << endl; // 좜λ ₯ 

#include<iostream>
using namespace std;

int main() {
	printf("hello pc\n");
	std::cout << "hello\n pc" << std::endl;
	cout << "hello pc" << endl;

}
/* #include<stdio.h>

int main() {

	printf("hellp PC\n");

	return 0;
}
*/
//주석 처리 단좕킀

//#include<math.h> 
//Cμ–Έμ–΄ κ°œμ • μ™„λ£Œ C99 1999 잘 μ•ˆλ°”λ€œ
//C++ 3λ…„λ§ˆλ‹€ κ°œμ •μ΄ 됨 (λ‹€λ₯Όμˆ˜μžˆμŒ)

#include<iostream> //input output 흐λ₯΄λ‹€, ν—€λ”νŒŒμΌ
using namespace std; //기본적으둜 써쀀닀 , 이름곡간섀정 


void main() { // void . λ¦¬ν„΄μž , ν•¨μˆ˜μ„ μ–Έ

	printf("hellp PC\n"); 
	//자릿수 λ§žμΆœλ•Œ 
	cout << "hello PC" << endl; 
	//ν”„λ¦°νŠΈf 와 /n = endl = 자릿수 맞좜 ν•„μš” 없을 λ•Œ
 //μ•„λ¬΄κ±°λ‚˜ μ‚¬μš©ν•΄λ„λ¨

	cout << "hello PC"; //μ½˜μ†”μ•„μ›ƒ == 좜λ ₯
	cout << "hello PC" << endl; 
	 cout << "hello PC" << endl;
	 cout << "hello" << "PC\n" << endl << "white" << endl;
	
	 //cin μž…λ ₯

	 int num;
	 printf("번호λ₯Ό μž…λ ₯ν•΄ μ£Όμ„Έμš”:  ");
	 cin >> num; // ν™”μ‚΄ν‘œ >> num μ•ˆμœΌλ‘œ λ“€μ–΄κ°„
	//scanf μ„œμ‹μ§€μ •μž(ν˜•μ‹)κ°€ μžˆμ—ˆλŠ”λ° 없어짐
	 //C++은 ν˜•μ‹μ„ μ—†μ•° μžλ™μœΌλ‘œ μ½μ–΄μ˜΄
	 cout << "λ²ˆν˜ΈλŠ” : " << num << "μž…λ‹ˆλ‹€" << endl; // ν™”μ‚΄ν‘œ << λ°–μœΌλ‘œ 좜λ ₯

	// return; 
}


β˜†β˜†β˜†β˜†ν΄λž˜μŠ€(μΈμŠ€ν„΄μŠ€) 관계, ꡬ성 ###주관식 1문제

 

 

 

클래슀(class): 객체λ₯Ό λ§Œλ“œλŠ” 섀계도

ν΄λž˜μŠ€λ‘œλΆ€ν„° λ§Œλ“€μ–΄μ§€λŠ” 각각의 객체λ₯Ό νŠΉλ³„νžˆ κ·Έ 클래슀의 μΈμŠ€ν„΄μŠ€ (instance)라고도 ν•œλ‹€.

 

class Car {}; // Car 클래슀 생성 = νƒ€μž…

Car c1, c2; // Car νƒ€μž… λ³€μˆ˜ μ„ μ–Έ = 객체 생성

	c1.speed = 50; //멀버 λ³€μˆ˜ μ ‘κ·Ό = (.) λ„νŠΈ μ—°μ‚°μž μ‚¬μš©
	c1.gear = 3;
	c1.start();
	c1.view();

객체 (μ‚¬μš©)  동적생성/정적생성

클래슀 = νƒ€μž…

int main(void) {

//정적 생성 
	Car myCar;
    myCar.view();

//동적생성 new 와 delete μ‚¬μš©
	Car* myCar = new Car(); //포인터 λ©”λͺ¨λ¦¬μœ„μΉ˜μ˜ 차이
	myCar->speed;
	myCar->view(); //λ©”λͺ¨λ¦¬ λˆ„μˆ˜κ°€ μƒκΈ°λ‹ˆκΉŒ 

	if (!myCar) //ν•΄μ œ μ—¬λŸ¬λ²ˆν•΄λ²„λ¦¬λ©΄ 문제 μƒκΈ°λ‹ˆκΉŒ 쑰건식 λ„£μ–΄μ€€λ‹€.
		delete myCar; //λ©”λͺ¨λ¦¬ ν•΄μ œ μ‹œμΌœμ€˜μ•Όν•¨
}

 


μ ‘κ·Όμ œμ–΄ (public, private, protected)

 

 

#include<iostream>
using namespace std;

#private (λ””ν΄νŠΈ) μ „μš©λ©€λ²„-클래슀 μ•ˆμ—μ„œλ§Œ μ‚¬μš©κ°€λŠ₯

class Car {
private: //데이터 ν˜„μž¬ μƒνƒœ 값에 μ ‘κ·Ό μ•ˆλ˜κ²Œ 주의
//κΈ°λ³Έ 값은 private
	string color = "white";
	int speed = 0;
	int gear = 0;


# public κ³΅μš©λ©€λ²„-μ–΄λ””μ„œλ“ μ§€ 객체λ₯Ό ν†΅ν•˜μ—¬ μ‚¬μš©κ°€λŠ₯

public:
	void speedUp() { //ν•¨μˆ˜λ₯Ό ν†΅ν•΄μ„œ μ œμ•½μ„ 건닀.(μ‘°κ±΄ν†΅μ œ)
//λ³€μˆ˜λ‘œλŠ” μ‘°κ±΄ν†΅μ œκ°€ λΆˆκ°€λŠ₯함
		if (speed > 100)
			speed = 0;
		else
			speed += 10;
	}

	void speedDown() {
		if (speed < 0)
			speed = 0;
		else
			speed -= 10;
	}

	void view() {
		cout << "speed = " << speed << endl;
		cout << "gear = " << gear << endl;
		cout << "color = " << color << endl;
	}

};


# protected 

μƒμ†κ΄€κ³„μ—μ„œ λΆ€λͺ¨ν΄λž˜μŠ€μ—μ„œ νŒŒμƒλœ μžμ‹ν΄λž˜μŠ€κ°€
λΆ€λͺ¨ν΄λž˜μŠ€μ˜ λ³΄ν˜Έλ©€λ²„λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

class Emp {
	int rrn;
	
protected:
		int salary;
public:
	string name;
	void setSalart(int salary);
	int getSaltry();

};

class Manager : public Emp {
	int bonus;

public:
	Manager(int b = 0) : bonus(b) {}
	void modify(int s, int b);//ν•¨μˆ˜μ›ν˜• μ™ΈλΆ€μ •μ˜
	void display();
};

	void Manager::modify(int s, int b) { //ν•¨μˆ˜ μ™ΈλΆ€μ •μ˜
		salary = s;
		bonus = b;

	}
};

 


멀버 λ³€μˆ˜/ν•¨μˆ˜ μ™ΈλΆ€μ •μ˜

 

class Cat {
	void setEat(int e); // 5.ν•¨μˆ˜ μ™ΈλΆ€ μ •μ˜ - μ›ν˜•
};


void Cat::setEat(int e) { // 5.ν•¨μˆ˜ μ™ΈλΆ€ μ •μ˜
	~~
}


멀버 ν•¨μˆ˜κ°€ 클래슀 내뢀에 μ •μ˜λ˜λ©΄ μžλ™μ μœΌλ‘œ 인라인(inline) ν•¨μˆ˜κ°€ 된
λ‹€. 
 멀버 ν•¨μˆ˜κ°€ 클래슀 외뢀에 μ •μ˜λ˜λ©΄ 일반적인 ν•¨μˆ˜μ™€ λ™μΌν•˜κ²Œ ν˜ΈμΆœν•œλ‹€
#pragma once
#include<iostream>
using namespace std;

class Cat { //1.고양이 클래슀 λ§Œλ“€κΈ°

	string name; //2.λ©€λ²„λ³€μˆ˜λ§Œλ“€κΈ°
	bool sleep;
	int age;
	int hungry;
	string meow;
	string meow2;


public:

	Cat() { //7.μƒμ„±μž λ§Œλ“€κΈ° (μƒμ„±μž 1번 , λ‚΄λΆ€μ •μ˜)
		name = "NABI";
		sleep = 0;
		age = 0;
		hungry = 0;
		meow = "...";
		meow2 = "...";

	}

	//Cat(int a); //7.μƒμ„±μž λ§Œλ“€κΈ° (<μ€‘λ³΅μƒμ„±μž> λ§€κ°œλ³€μˆ˜ μžˆλŠ” μƒμ„±μž 2번 , μ™ΈλΆ€μ •μ˜)


	void setName(string n) { //2.λ©€λ²„ν•¨μˆ˜λ§Œλ“€κΈ° , 3. setμ„€μ •μž
		name = n;
	};

	string getName() {  // 3.getμ ‘κ·Όμž
		return name;
	};

	void setAge(int a) { 
		age = a;
	}

	/* void setAge(double a) { //11. double κ°’λ“€μ–΄μ˜€λ©΄ λ°˜μ˜¬λ¦Όν•˜κΈ°
		age = a;
		age = ceil(a);
	} */


	int getAge() {
		return age;
	}


	void setSleepOn() {
		sleep = true;
		meow = "Zzzz...";
	};

	void setSleepOff() {
		sleep = false;
		meow = "μΌμ–΄λ‚¬μ–΄μš”.";
		setAttractOn();
	};
	
	void setEat(int e); // 5.ν•¨μˆ˜ μ™ΈλΆ€ μ •μ˜

	int getEat() {
		return hungry;
	}

	void setAttractOn() {
		meow.append("Meow~♥");
	}
	void setAttractOff() {
		meow2.append(" Meow@#@^&#!#!!!!");
	}


	void view() {
		cout << " ======μƒνƒœ===== "<< endl;
		cout << " 이름   : " << name << endl;
		cout << " λ‚˜μ΄   : " << age << endl;
		cout << " λ°°κ³ ν”” : " << hungry << endl << endl;
		cout << " ======λŒ€ν™”===== " << endl;
		cout << "λ‚˜      :" << name << ", 뭐해?" << endl;
		cout << name << "   : " << meow << endl << endl;
		cout << "λ‚˜      :" << name << ", λ°°κ³ ν”„λ‹ˆ?" << endl;
		cout << name << "   : " << meow2 << endl;
		cout << " =============== " << endl;
		
	}

	~Cat() { //μ†Œλ©Έμž
	}

};

void Cat::setEat(int e) { // 5.ν•¨μˆ˜ μ™ΈλΆ€ μ •μ˜
	
	hungry = e;

	if (sleep == false) {
		if (e > 8) {
			meow2 = "λ°°λΆˆλŸ¬μš”";
		}
		else if (e == 0) {
			meow2 = "λ„ˆλ¬΄λ„ˆλ¬΄ λ°°κ³ νŒŒμš”";
			setAttractOff();
		}
		else if (0 < e <= 4) {
			meow2 = "λ°°κ³ νŒŒμš”";
		}
	}
	else {
		meow2 = "Zzz...";
	}
		
}

	/* Cat::Cat(int a) {//7.μƒμ„±μž λ§Œλ“€κΈ° (<μ€‘λ³΅μƒμ„±μž> λ§€κ°œλ³€μˆ˜ μžˆλŠ” μƒμ„±μž 2번 , μ™ΈλΆ€μ •μ˜)
		name = "NABI";
		sleep = 0;
		age = a;
		hungry = 0;
		meow = "...";
		meow2 = "...";
	}
	*/

 

 


μ˜€λ²„λ‘œλ”©(μƒμ„±μž)/ μ˜€λ²„λΌμ΄λ”©

 

μ˜€λ²„λ‘œλ”© = μ€‘λ³΅μ •μ˜

class Car {
private:
	string color = "RED";
	int speed = 0;
	int gear = 0;

public:
	int getSpeed() { //μ ‘κ·Όμž
		return speed;
	}
    
#λ©€λ²„ν•¨μˆ˜ 쀑볡 μ •μ˜(μ˜€λ²„λ‘œλ”©)κ°€ κ°€λŠ₯

	void setSpeed(int s);
	void setSpeed(double s) { cout << "double" << endl; };
	void setSpeed(int s, double g) { cout << "int, double" << endl; };
	void setSpeed(double s, int g) { cout << "double, int" << endl; };
	void setSpeed(string c) { cout << "string" << endl; };

//

	c1.setSpeed(); //였λ₯˜
	c1.setSpeed(10); // 곳이 μ •ν•΄μ Έμž‡μŒ 였λ₯˜ μ•ˆλ‚¨
	c1.setSpeed(10,3.5); // 곳이 μ •ν•΄μ Έμž‡μŒ 였λ₯˜ μ•ˆλ‚¨
}

--------------------------------
	//곡 μƒμ„±μž
	// λ””ν΄νŠΈ μƒμ„±μž
	//μΈμˆ˜κ°€ μžˆλŠ” μƒμ„±μž


	int getGear();
	void setGear(int g) { gear = g; }
	int getSpeed() { return speed; }


	int Car::getGear() {
		return gear;
	}

	void Car::setSpeed(int s) {
		if (speed > 100)
			speed = 100;
		else
			speed = s;
	}

μ˜€λ²„λΌμ΄λ”© = μž¬μ •μ˜

μž¬μ •μ˜(overriding): μžμ‹ ν΄λž˜μŠ€κ°€ ν•„μš”μ— 따라 μƒμ†λœ 멀버 ν•¨μˆ˜λ₯Ό λ‹€μ‹œ μ •μ˜ν•˜λŠ” 것

 

/* λΆ€λͺ¨ 클래슀의 멀버 ν•¨μˆ˜μ™€ λ™μΌν•œ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό κ°€μ Έμ•Ό ν•œλ‹€. 
 즉 멀버 ν•¨μˆ˜μ˜ 이름, λ°˜ν™˜ν˜•, 맀개 λ³€μˆ˜μ˜ κ°œμˆ˜μ™€ 데이터 νƒ€μž…μ΄ μΌμΉ˜ν•˜μ—¬
μ•Ό ν•œλ‹€. */


#include <iostream>
#include <string>
using namespace std;

class Car {

public:
	int getHp()
	{
		return 100; // 100마λ ₯ λ°˜ν™˜
		}
};

class SportsCar :public Car {
public: 
	int getHp()
	{
		return 300; // μ˜€λ²„λΌμ΄λ”© = μž¬μ •μ˜
	}
};

int main() {
	SportsCar sc;
	cout << "마λ ₯ :" << sc.getHp() << endl;
	return 0;
}

--------------

int main() {
	SportsCar sc;
	cout << ":" << sc.Car::getHp() << endl; //μž¬μ •μ˜ μ „ ν•¨μˆ˜ 호좜
	return 0;
}


UML

UML(Unified Modeling Language):

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” ν΄λž˜μŠ€λ“€ κ°„μ˜ 관계λ₯Ό 그리기 μœ„ν•˜μ—¬ μ‚¬μš©

 


μƒμ„±μž/μ†Œλ©Έμž (μˆœμ„œ)

 

객체의 생성
μƒμ„±μž()
객체의 μ‚¬μš©
μ†Œλ©Έμž()
객체의 파괴

m.blog.naver.com/psychoria/40093564549

μƒμ„±μž(contructor):

객체가 생성될 λ•Œμ— ν•„λ“œμ—κ²Œ μ΄ˆκΈ°κ°’μ„ μ œκ³΅ν•˜κ³  ν•„μš” ν•œ μ΄ˆκΈ°ν™” 절차λ₯Ό μ‹€ν–‰ν•˜λŠ” 멀버 ν•¨μˆ˜

 클래슀 이름과 λ™μΌν•˜λ‹€
 λ°˜ν™˜κ°’μ΄ μ—†λ‹€. 
 λ°˜λ“œμ‹œ public 이어야 ν•œλ‹€.
 쀑볡 μ •μ˜ν•  수 μžˆλ‹€

-μƒμ„±μž μ™ΈλΆ€ μ •μ˜ 
	1. λ””ν΄νŠΈ μƒμ„±μž
    


    
	2. λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ§€λŠ” μƒμ„±μž
    
    
	3. μƒμ„±μž μ€‘λ³΅μ •μ˜
	4. μƒμ„±μž 호좜
	5. μƒμ„±μž ν•˜λ‚˜λ„ μ •μ˜ν•˜μ§€ μ•ŠμœΌλ©΄,
	6. λ””ν΄νŠΈ λ§€κ°œλ³€μˆ˜
    7. μƒμ„±μžμ—μ„œ λ‹€λ₯Έ μƒμ„±μž 호좜
    
    
        A(int a, int b){
        m_a = a;
        m_b = b;
};

    
    A(int a, int b) : m_a(a), m_b(b){  // μ΄ˆκΈ°ν™” 리슀트(Member Initialization List)
        //더 ν•  일
};

1. μƒμˆ˜ 멀버 λ³€μˆ˜ μ΄ˆκΈ°ν™”
class ABC{
public:
        const int A;
        ABC(int i) : A(i){}
};
 2. 레퍼런슀 멀버 λ³€μˆ˜ μ΄ˆκΈ°ν™”
 3. ν¬ν•¨λœ 객체의 μ΄ˆκΈ°ν™”
 4. 상속 받은 멀버 λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™” ν•  λ•Œ
μ†Œλ©ΈμžλŠ” 클래슀 이름에 ~κ°€ λΆ™λŠ”λ‹€. 
 값을 λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ”λ‹€. 
 public 멀버 ν•¨μˆ˜λ‘œ μ„ μ–Έλœλ‹€. 
 μ†Œλ©ΈμžλŠ” 맀개 λ³€μˆ˜λ₯Ό 받지 μ•ŠλŠ”λ‹€.
 쀑볡 μ •μ˜λ„ λΆˆκ°€λŠ₯ν•˜λ‹€.
	1.μ†Œλ©Έμž
    ~Car() {
		}
    
 	2.λ””ν΄νŠΈ μ†Œλ©Έμž //ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ†Œλ©Έμž μ •μ˜ ν•˜μ§€ μ•Šμ•˜μœΌλ©΄ μžλ™μ‚½μž…λ˜μ–΄μ„œ 호좜됨
    
public:
	Car() {
		speed = 100;
		gear = 3;
		color = "RED";
}

//μƒμ„±ν• λ•Œ μ΄ˆκΈ°κ°’ λ“€μ–΄κ°€κ³  , μƒμ„±μžκ°€ λ™μž‘ν•˜λ©΄μ„œ 값이 듀어감
//μƒμ„±μž μ΄ˆκΈ°ν™”ν• κ±°λ©΄ μƒμ„±ν• λ•Œ μ΄ˆκΈ°κ°’ μ•ˆλ„£μ–΄μ€˜λ„λ¨


// μ•žμ— λ°˜ν™˜κ°’ xx

public:
	Car() {
		speed = 100;
		gear = 3;
		color = "RED";
}

	Car(int g) {
		speed = 100;
		gear = g;
		color = "RED";
}

//μƒμ„±μžκ°€ μ—¬λŸ¬κ°œλΌλ„ λ™μž‘ν•˜λŠ”κ±΄ μƒμ„±μž 단 !! 1개 !!!!!!!!
// 인수

main {

Car c1; // 인수 μ—†λŠ”
Car c2(20); //μΈμˆ˜μžˆλŠ”

 μžλ™μœΌλ‘œ λ§žμΆ°μ„œ 듀어감 
ν•¨μˆ˜μΈλ° 객체 λ§Œλ“€κ±Έ 선택가λŠ₯


μ™ΈλΆ€λ‘œ λΉΌκΈ°

Car (int g);


	Car:: Car(int g) {
		speed = 100;
		gear = g;
		color = "RED";
}

//κ³΅μƒμ„±μž
//λ””ν΄νŠΈ μƒμ„±μž
Car () {
}

//μΈμˆ˜κ°€ μžˆλŠ” μƒμ„±μž
Car (int n) {
}


//μ†Œλ©Έμž
~Car() {
}


멀버 μ΄ˆκΈ°ν™”(μƒμˆ˜ μ΄ˆκΈ°ν™” , μ΄ˆκΈ°ν™” 방법 3가지.)

 

1. μƒμˆ˜ 멀버 μ΄ˆκΈ°ν™” (λ…νŠΉ)

Car(): speed(300) {
}
-------------
Car(int s, int g, string c) : spped(s), gear(g), color(c) { 
}

 


this 포인터

thisλŠ” ν˜„μž¬ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” 포인터

 

λ©€λ²„λ³€μˆ˜

#include <iostream>

using namespace std;

class ThisPo {
    int n1;
    int n2;
public:
    //λ©”μ†Œλ“œμ˜ λ§€κ°œλ³€μˆ˜λž‘ 클래슀의 멀버 λ³€μˆ˜ ꡬ별가λŠ₯
    ThisPo(int n1, int n2) { 
        this->n1 = n1; //this->n1 λ©€λ²„λ³€μˆ˜
        this->n2 = n2;
    }

    void print()
    {
    cout << this->n1 << endl;
    cout << this->n1 << endl;
       }
};

void main() {

    ThisPo num(2, 4);
    num.print();

    return;
}

 

 

 


정적멀버(static)

 

μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variable): κ°μ²΄λ§ˆλ‹€ ν•˜λ‚˜μ”© μžˆλŠ” λ³€μˆ˜

정적 λ³€μˆ˜(static variable): λͺ¨λ“  객체λ₯Ό ν†΅ν‹€μ–΄μ„œ ν•˜λ‚˜λ§Œ μžˆλŠ” λ³€μˆ˜

static은 μ™ΈλΆ€μ—μ„œ μ΄ˆκΈ°ν™”

class Car {
	static int count;
};

int Car::count = 0;

 

 

 


상속

 

: 기쑴에 μ‘΄μž¬ν•˜λŠ” μœ μ‚¬ν•œ ν΄λž˜μŠ€λ‘œλΆ€ν„° 속성과 λ™μž‘μ„ 이어받고 μžμ‹ μ΄ ν•„μš”ν•œ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” κΈ°λŠ₯

#include <iostream>
#include <string>
using namespace std;

class Car {

	int speed = 10;

public:
	void setSpeed(int s) {
		speed = s;
	}

};

class sportCar :public Car { //상속
	bool turbo = false;
public:
	void setTurbo(int t) {
		turbo = t;
	}

	void view() {
		cout << "speed = " << speed << endl; 
		// λΆ€λͺ¨ 상속이라고 해도  privateλŠ” μ ‘κ·Ό λΆˆκ°€λŠ₯ speed 였λ₯˜ 뜸
		cout << "turbo = " << turbo << endl; 
	}

};

void main() {
	sportCar s1;

	s1.speed = 100;
}


λΆ€λͺ¨μƒμ„±μž λͺ…μ‹œμ  호좜

 

Rectangle::rectangle(int x, int y, int w, int, y) : Shape(x, y) {
}