μμ±μ μ¬μ©νκΈ°
1. Stock food = Stock("World Cabbage",250,1.25);
2. Stock garment("Furry Mason",50,2.5);
newλ₯Ό μ¬μ©ν λ μμ±μ μ¬μ©νλ λ²
Stock *pstock = new Stock("Ele G",18,19.0);
μμ±μλ κ°μ²΄μ μν΄ νΈμΆλλ κ²μ΄ μλλΌ, κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©λλ€.
λν΄νΈ μμ±μ
λν΄νΈ μμ±μλ λͺ μμ μΈ μ΄κΈ°ν κ°μ μ 곡νμ§ μμ λ κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©νλ μμ±μμ΄λ€.
Stock fluffy_the_cat; //λν΄νΈ μμ±μ μ¬μ©
μ¬μ©μκ° μ΄λ ν μμ±μλ μ μνμ§ μμ κ²½μ°μλ§ μ»΄νμΌλ¬κ° λν΄νΈ μμ±μλ₯Ό μ 곡νλ€.
μμ±μλ₯Ό μ μν ν λν΄νΈ μμ±μλ₯Ό μ μνλ λ κ°μ§ λ°©λ²
1. κΈ°μ‘΄μ μμ±μμ μλ λͺ¨λ 맀κ°λ³μμ λν΄νΈ κ°μ μ 곡
Stock(const string &co = "Error",int n=0,double pr=0.0);
2. ν¨μ μ€λ²λ‘λ©μ μ¬μ©νμ¬ λ§€κ°λ³μκ° μλ λ νλμ μμ±μλ₯Ό μ μ
Stock();
μ¬μ©μλ νλμ λν΄νΈ μμ±μλ§ κ°μ§ μ μμΌλ―λ‘ λ κ°μ§ λ°©λ²μ λ€ μ¬μ©νμ¬ λ κ°μ λν΄νΈ μμ±μλ₯Ό λ§λ€λ©΄ μ λλ€.
λν΄νΈ μμ±μλ₯Ό μμμ μΌλ‘ νΈμΆν λλ κ΄νΈλ₯Ό μ¬μ©νλ©΄ μ λλ€.
Stock second(); //ν¨μλ₯Ό μ μΈν¨
νκ΄΄μ
κ°μ²΄μ μλͺ μ΄ λλλ μμ μμ, νλ‘κ·Έλ¨μ νκ΄΄μλΌλ νΉλ³ν λ©€λ² ν¨μλ₯Ό μλμΌλ‘ νΈμΆνλ€.
μμ±μμ λ§μ°¬κ°μ§λ‘, νκ΄΄μλ νΉλ³ν μ΄λ¦μ κ°μ§λ€.
μμ νΈλ°(~)κ° λΆλ ν΄λμ€ μ΄λ¦μΌλ‘λΆν° λ§λ€μ΄μ§λ€.
(Stock ν΄λμ€μ νκ΄΄μλ ~Stock()μ΄λ€.)
μμ±μμ λ§μ°¬κ°μ§λ‘ νκ΄΄μλ λ¦¬ν΄ κ°μ κ°μ§ μ μκ³ μ μΈλ λ°μ΄ν°νμ κ°μ§ μλλ€.
κ·Έλ¬λ νκ΄΄μλ 맀κ°λ³μλ₯Ό κ°μ§λ©΄ μ λλ€.
Stock νκ΄΄μλ μ무κ²λ μλ ν¨μλ‘ μ½λ© κ°λ₯
Stock::~Stock()
{}
νκ΄΄μκ° μΈμ νΈμΆλλμ§ μ μ μλλ‘ νκΈ° μν΄, νκ΄΄μλ₯Ό λ€μκ³Ό κ°μ΄ μ½λ©ν μ μλ€.
Stock::~Stock()
{
cout<<"μλ , "<<company<<"!\n";
}
μΌλ°μ μΌλ‘ μ¬μ©μκ° μ½λμ λͺ μμ μΌλ‘ νκ΄΄μλ₯Ό νΈμΆνλ©΄ μ λλ€.
ν΄λμ€ κ°μ²΄μ μλͺ μ΄ λ€νμ λ νκ΄΄μλ μλμΌλ‘ νΈμΆλκΈ° λλ¬Έμ, λ°λμ νκ΄΄μκ° μμ΄μΌ νλ€.
μ¬μ©μκ° νκ΄΄μλ₯Ό μ 곡νμ§ μμΌλ©΄, μ»΄νμΌλ¬κ° λν΄νΈ νκ΄΄μλ₯Ό μ μΈνλ€. κ°μ²΄λ₯Ό νκ΄΄νλ μ½λλ₯Ό λ°κ²¬νλ©΄, μ»΄νμΌλ¬λ κ·Έ νκ΄΄μλ₯Ό μν μ μλ₯Ό μ 곡νλ€.
κ°μ²΄μ κ°μ μ΄κΈ°νλ‘ μ€μ ν μλ μκ³ λμ μΌλ‘λ μ€μ κ°λ₯νλ©΄, μ΄κΈ°νλ₯Ό μ¬μ©νλ κ² λ ν¨μ¨μ μ΄λ€.
-> μ΄κΈ°νλ μμ κ°μ²΄λ₯Ό μμ±ν ν κ·Έ μμ κ°μ²΄λ₯Ό κ°μ²΄μ 볡μ¬νκ±°λ, μμ κ°μ²΄λ₯Ό μμ±νμ§ μκ³ λ°λ‘ κ°μ²΄μ κ°μ μ΄κΈ°νν¨. λμ μ νμ μμ κ°μ²΄λ₯Ό μμ±ν ν κ°μ²΄μ 볡μ¬ν¨.
c++11μ 리μ€νΈ μ΄κΈ°ν
c++11μμλ μ€κ΄νΈ μμ κ°λ€κ³Ό μμ±μμ 맀κ°λ³μλ€μ λ§€μΉ μν€λ κ²μ μ 곡νλ€.
Stock hot_tip={"Dddd",100,45.0};
Stock jock{"Sport Age Storage,Inc"};
Stock *pc=new Stock{"aaa",32,1.3};
const λ©€λ² ν¨μ
λ€μκ³Ό κ°μ μ½λ λ¨νΈμ κ°μ
const Stock land = Stock("Kludgehorn");
land.show();
μ»΄νμΌλ¬λ const μ΄κΈ° λλ¬Έμ λ³κ²½νλ©΄ μ λλ νΈμΆ κ°μ²΄λ₯Ό show()κ° μμ ν μ μκΈ° λλ¬Έμ μ€νλμ§ μμ.
ν¨μμ 맀κ°λ³μλ₯Ό const μ°Έμ‘°λ constλ₯Ό μ§μνλ ν¬μΈν°λ‘ ν΄κ²°νμμ§λ§, μ¬κΈ°μλ ꡬ문μμ λ¬Έμ λλ¬Έμ ν΄κ²° λΆκ°.
c++ μ΄ μ΄κ²μ ν΄κ²°νλ λ°©λ²μ κ΄νΈ λ€μ const ν€μλλ₯Ό λ£λ κ²
void show() const;
ν¨μ μ μμ μμ λΆλΆλ λ€μκ³Ό κ°λ€.
void Stock::show() const
μμ±μμ νκ΄΄μμ λν μμ½
Bozo(const char *fname,const char *lname); //μμ±μ μν
μ΄ κ²½μ° λ€μκ³Ό κ°μ΄ μ΄κΈ°ν κ°λ₯
Bozo boz=Bozo("Boz","Big"); //κΈ°λ³Έ νμ
Bozo fufu = ("fufu","Od"); //짧μ νμ
Bozo *pc=new Bozo("popo","Le P"); //λμ κ°μ²΄
μ΄κΈ°ν 리μ€νΈ
Bozo boz=Bozo{"Boz,...
Bozo fufu={"...
Bozo *pc = new Bozo{"...
μμ±μκ° ν κ°μ λ§€κ° λ³μλ§ κ°μ§λ€κ³ κ°μ
Bozo dribble = Bozo(44);
Bozo roon(66);
Bozo tubby=32;
λν΄νΈ μμ±μλ 맀κ°λ³μκ° μκ³ , μ΄κΈ°ννμ§ μκ³ κ°μ²΄λ₯Ό μμ±ν λ μ¬μ©. μ¬μ©μκ° μ΄λ ν μμ±μλ μ 곡νμ§ μμΌλ©΄, μ¬μ©μλ₯Ό λμ νμ¬ μ»΄νμΌλ¬κ° λν΄νΈ μμ±μ μ μ. μ¬μ©μκ° μ 곡νλ λν΄νΈ μμ±μλ μ΄λ€ 맀κ°λ³μλ μ¬μ©νμ§ μκ±°λ, λͺ¨λ 맀κ°λ³μμ λν΄νΈ κ°μ μ 곡ν΄μΌ ν¨.
κ°μ²΄κ° νκ΄΄λ λ νκ΄΄μλ₯Ό νΈμΆν¨
νκ΄΄μμ μ΄λ¦μ ν΄λμ€ μ΄λ¦ μμ (~)κ° λΆμ κ²
ν΄λμ€ νκ΄΄μλ ν΄λμ€ μμ±μκ° newλ₯Ό μ¬μ©ν λ νμ.
κ°μ²΄ λ€μ¬λ€λ³΄κΈ°, this ν¬μΈν°
νλμ λ©μλκ° λ κ°μ κ°μ²΄λ₯Ό λμμ μ²λ¦¬ν νμκ° μμ λ, c++μ thisλΌλ ν¬μΈν°λ₯Ό μ¬μ©
this ν¬μΈν°λ λ©€λ² ν¨μλ₯Ό νΈμΆνλ λ° μ¬μ©λ κ°μ²΄λ₯Ό μ§μνλ€.
thisλ κ·Έ κ°μ²΄μ μ£Όμμ΄λ―λ‘ κ°μ²΄λ *thisλ‘ ννλλ€.
κ°μ²΄ λ°°μ΄
κ°μ²΄ λ°°μ΄μ νμ€ λ°μ΄ν°νμ λ°°μ΄μ μ μΈνλ κ²κ³Ό μμ ν λμΌν λ°©λ²μΌλ‘ μ μΈνλ€.
Stock mystuff[4];
μμ±μλ₯Ό μ¬μ©νμ¬ λ°°μ΄ μμλ€μ μ΄κΈ°νν μ μλ€.
κ°κ°μ μμμ λν΄ μμ±μλ₯Ό νΈμΆν΄μΌ νλ€.
const int STKS=4;
Stock stock[STKS]={
Stock("nono",12.4,20),
Stock("Boff",32.2,10),
...
};
ν΄λμ€κ° μμ±μλ₯Ό νλ μ΄μ κ°μ§κ³ μμ κ²½μ°,
λ°°μ΄μ κ° μμλ§λ€ μλ‘ λ€λ₯Έ μμ±μ μ¬μ© κ°λ₯
const int STKS=10;
Stock stock[STKS]={
Stock("nono",12.4,20),
Stock(),
...
};
ν΄λμ€ μ¬μ© λ²μ
ν΄λμ€ μ¬μ© λ²μλ ν΄λμ€ λ°μ΄ν° λ©€λ²λ€μ μ΄λ¦μ΄λ ν΄λμ€ λ©€λ² ν¨μλ€μ μ΄λ¦κ³Ό κ°μ΄, ν΄λμ€ μμμ μ μλλ μ΄λ¦λ€μ μ μ©λλ€. ν΄λμ€ μ¬μ©λ²μλ₯Ό κ°λ κ²λ€μ ν΄λμ€ μμμλ§ μλ €μ§λ€. μλ₯Ό λ€μ΄ Stock ν΄λμ€μ shares λ©€λ²λ Jobν΄λμ€μ shares λ©€λ²μ μμ ν λ€λ₯Έ λ³μμ΄λ€. λν ν΄λμ€ μ¬μ© λ²μλ μ¬μ©μκ° λ°κΉ₯ μΈκ³μμ ν΄λμ€μ λ©€λ²λ€μ μ§μ μ κ·Ό λΆκ°λ₯νλ€.
ν΄λμ€ μ¬μ© λ²μ ν¨μ
class Stock {
private:
const int Months=12;//μ€ν¨νλ€.
double costs[Months];
...
ν΄λμ€λ₯Ό μ μΈνλ κ²μ κ°μ²΄κ° μ΄λ»κ² μκ²Όλμ§ μμ νλ κ²μ΄μ§, κ·Έ κ°μ²΄λ₯Ό μμ±νλ κ²μ μλλ―λ‘ μ€ν¨νλ€.
κ·Έλ¬λ, μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν λ κ°μ§ λ°©λ²μ΄ μλ€.
1. ν΄λμ€ μμ μ΄κ±°μ²΄ μ μΈ κ°λ₯
class Bakery
{
private:
enum{Months=12};
double consts[Months];
...
μ¬κΈ°μ μ¬μ©λλ μ΄κ±°μ²΄λ, μ΄κ±°μ²΄ λ³μλ₯Ό μμ±νκΈ° μν κ²μ΄ μλλΌ λ¨μν κΈ°νΈ μμλ₯Ό μμ±νκΈ° μν κ²μΌλ‘, μ΄κ±°μ²΄ νκ·Έλ₯Ό μ 곡ν νμκ° μλ€.
2. μ΅κ·Όμ c++λ ν€μλ staticλ₯Ό μ¬μ©νμ¬ ν΄λμ€ μμ μμλ₯Ό μ μνλ λ°©λ²μ λμ ν¨
class Bakery
{
private:
static const int Months=12;
double costs[Months];
...
λ²μκ° μ ν΄μ§ μ΄κ±°(c++11)
enum egg{Small,Medium,Large};
enum t_shirt{Small,Medium,xlarge};
μ΄ κ΅¬λ¬Έμ μ λλ‘ μλνμ§ λͺ»νλ€.
c++11μμλ μλ‘μ΄ μ΄κ±°μ νμμ μ 곡νμ¬ μ΄κ±°μμκ² ν΄λμ€ λ²μλ₯Ό κ°κ² ν¨μΌλ‘μ¨ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°
enum class egg{Small,Medium,Large};
enum class t_shirt{Small,Medium,xlarge};
λ λ€λ₯Έ λ°©λ²μΌλ‘, ν΄λμ€ λμ struct ν€μλ μ¬μ© κ°λ₯
λ κ°μ§ λͺ¨λ μ΄κ±°μλ₯Ό μΆ©μ‘±μν€κΈ° μν΄μ enum μ΄λ¦ μ¬μ©ν΄μΌ ν¨.
egg choice=egg::Large;
t_shirt Floyd=t_shirt::Large;
μΌλ°μ μΈ μ΄κ±°λ μΌλΆ μν©μμλ μλμ μΌλ‘ intνμΌλ‘ μ νλλ€. κ·Έλ¬λ, λ²μκ° μ§μ λ μ΄κ±°λ intνμΌλ‘ μμμ λ³νμ΄ μ΄λ£¨μ΄μ§μ§ μμ. κΌ νμνλ€λ©΄ λͺ μμ λ³ν κ°λ₯.