class A{
public:
int a;
static int num;//靜態(tài)變量 屬于類(lèi),類(lèi)加載時(shí)候就被初始化
void setB(int _b);
int getB(void);
A();//類(lèi)的構(gòu)造方法
~A();//析構(gòu)函數(shù) 對(duì)象被刪除的時(shí)候會(huì)執(zhí)行的操作
A(const A &obj);//拷貝構(gòu)造函數(shù) (這個(gè)概念沒(méi)有接觸過(guò))
friend void print( int x );//友元函數(shù)锣杂,也可以是類(lèi),感覺(jué)像Java中的內(nèi)部類(lèi),可訪問(wèn)外部類(lèi)的屬性
double Volume(){
return length * breadth * height;
}
int compare(Box box){
return this->Volume() > box.Volume();//this關(guān)鍵字 指向調(diào)用對(duì)象
}
static int getNum(){//靜態(tài)函數(shù)成員颅和。。缕允。搞不懂函數(shù)和方法的區(qū)別
return num;
}
protected:
double c;//這貨是在其子類(lèi)中可以被訪問(wèn)到
private:
int b;//私有變量要對(duì)外開(kāi)放這么處理峡扩,類(lèi)似Java中g(shù)et set
int *ptr;
};//有分號(hào) 和java不同
int A::num = 10086;//初始化A類(lèi)的靜態(tài)變量num
A::A(void){
cout << "構(gòu)造函數(shù)" << endl;
}
A::~A(void){
cout << "析構(gòu)函數(shù)" << endl;
}
Line::Line(const Line &obj)
{
cout << "調(diào)用拷貝構(gòu)造函數(shù)并為指針 ptr 分配內(nèi)存" << endl;
ptr = new int;// ... 這也new
*ptr = *obj.ptr; // 拷貝值
}
int A::getB(void){
return b;
}
void A::setB(int _b){
b = _b;
}
void print(int x){
cout << "this is :" << x <<endl;
}
C++ 中的繼承,多態(tài)障本,抽象
# include <iostream>
using namespace std;
class Color{
public:
int a;
virtual int needBeImpl() = 0; //純虛函數(shù)教届,Java中的抽象方法
};
class Name{
public:
int b;
void setName(){
}
};
class Sth : public Color,public Name{//用:來(lái)表示繼承,還可以多繼承(java單繼承多實(shí)現(xiàn))沒(méi)有extends關(guān)鍵字驾霜,要加訪問(wèn)修飾符不要默認(rèn)private案训。
public:
int getColor(){
return 0;
}
virtual void setName(){
//方法的重載 virtual關(guān)鍵字
}
};
int main(void){
return 0;
}