κ°λ°/c | c++
C++ μμ
λ©λ©μ½©
2022. 1. 13. 17:38
# μμ override
#include <stdio.h>
#include <string.h>
class Human
{
protected:
char name[20];
int age;
public:
Human(const char *aname, int aage)
{
strcpy(name, aname);
age=aage;
}
void intro()
{
printf("μ΄λ¦=%s, λμ΄=%d\n",name,age);
}
};
class Student : public Human
{
protected:
int stunum;
public:
Student(const char *aname, int aage, int astunum) : Human(aname,aage)
{
stunum = astunum;
}
void study()
{
printf("2*2=4, 3*2=6\n");
}
void intro()
{
printf("%dνλ²μ %sμ
λλ€.\n",stunum,name);
}
};
class Graduate : public Student
{
protected:
char thesis[32];
public:
Graduate(const char *aname, int aage, int astunum, const char *athesis):Student(aname,aage,astunum)
{
strcpy(thesis, athesis);
}
void research()
{
printf("%sμ μ°κ΅¬νκ³ λ
Όλ¬Έμ μ¨λ€.\n",thesis);
}
};
int main()
{
Human kim("κΉνν",30);
kim.intro();
Student han("νλΆλΆ",22,12345);
han.intro();
Graduate moon("λ¬Ένν",23,9333,"κ²μλ°©μκΆλΆμ");
moon.research();
}
# λ€μ€μμ
#include <stdio.h>
class A
{
protected:
int a;
public:
A(int aa) {a=aa;}
};
//2μ€ μμμ νΌνκΈ° μν΄ Aλ₯Ό κ°μκΈ°λ° ν΄λμ€λ‘ μ§μ νλ€.
//κ°μκΈ°λ° ν΄λμ€λ‘ μ§μ νμ§ μμΌλ©΄ Dμ aκ° B::aμΈμ§, C::aμΈμ§
//ν·κ°λ¦¬κ³ , μ€μν μ μμΌλ―λ‘ μ£Όμν κ²!
class B : virtual public A
{
protected:
int b;
public:
B(int aa, int ab) : A(aa) {b=ab;}
};
class C : virtual public A
{
protected:
int c;
public:
C(int aa,int ac) : A(aa) {c=ac;}
};
class D : public B, public C
{
protected:
int d;
public:
D(int aa,int ab,int ac,int ad) : A(aa), B(aa,ab), C(aa,ac) {d=ad;}
void fD()
{
b=1;
c=2;
a=3;
}
};
int main()
{
D d(1,2,3,4);
}
# ν¬ν¨κ³Ό private μμ(ꡬνμμ)
( // ν¬ν¨ μ½λ )
#include <stdio.h>
#include <string.h>
class Date
{
protected:
int year, month, day;
public:
Date(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
void outDate()
{
printf("%d,%d,%d",year,month,day);
}
};
class Product : private Date
{
private:
char name[64];
char company[32];
int price;
//Date validto; λν΄νΈ μμ±μλ‘ validtoκ°μ²΄λ₯Ό λ§λ¬
public:
Product(const char *aname, const char *acompany, int y, int m, int d, int aprice) : Date(y,m,d)
// Product(const char *aname, const char *acompany, int y, int m, int d, int aprice) : validto(y,m,d)
{
strcpy(name,aname);
strcpy(company,acompany);
price=aprice;
}
void outProduct()
{
printf("μ΄λ¦:%s\n",name);
printf("μ μ‘°μ¬:%s\n",company);
printf("μ ν¨κΈ°κ°:");
outDate();
//validto.outDate();
puts("");
printf("κ°κ²©:%d\n",price);
}
};
int main()
{
Product shrimp("μμ°κΉ‘","λμ¬",2020,8,15,900);
shrimp.outProduct();
}
# μ€μ²© ν΄λμ€
#include <stdio.h>
#include <string.h>
class Product
{
private:
char name[24];
char company[32];
int price;
//Date ν΄λμ€λ μΈλΆλ‘ μλ €μ§μ§ μλ Productλ΄μ μ§μν΄λμ€
class Date
{
protected:
int year, month, day;
public:
Date(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
void outDate()
{
printf("%d,%d,%d",year,month,day);
}
};
Date validto;
public:
Product(const char *aname, const char *acompany, int y, int m, int d, int aprice) : validto(y,m,d)
{
strcpy(name,aname);
strcpy(company,acompany);
price=aprice;
}
void outProduct()
{
printf("μ΄λ¦:%s\n",name);
printf("μ μ‘°μ¬:%s\n",company);
printf("μ ν¨κΈ°κ°:");
validto.outDate();
puts("");
printf("κ°κ²©:%d\n",price);
}
};
int main()
{
Product shrimp("μμ°κΉ‘","λμ¬",2020,8,15,900);
shrimp.outProduct();
}
μΆμ² : κΉμν, C++νΈλ μ΄λ, νλΉμμΉ΄λ°λ―Έ, 2018.03.25