C++是一门面向对象的语言
类定义 & 对象
class A{
public:
int a;
static int num;//静态变量 属于类,类加载时候就被初始化
void setB(int _b);
int getB(void);
A();//类的构造方法
~A();//析构函数 对象被删除的时候会执行的操作
A(const A &obj);//拷贝构造函数 (这个概念没有接触过)
friend void print( int x );//友元函数,也可以是类,感觉像Java中的内部类,可访问外部类的属性
double Volume(){
return length * breadth * height;
}
int compare(Box box){
return this->Volume() > box.Volume();//this关键字 指向调用对象
}
static int getNum(){//静态函数成员。。。搞不懂函数和方法的区别
return num;
}
protected:
double c;//这货是在其子类中可以被访问到
private:
int b;//私有变量要对外开放这么处理,类似Java中get set
int *ptr;
};//有分号 和java不同
int A::num = 10086;//初始化A类的静态变量num
A::A(void){
cout << "构造函数" << endl;
}
A::~A(void){
cout << "析构函数" << endl;
}
Line::Line(const Line &obj)
{
cout << "调用拷贝构造函数并为指针 ptr 分配内存" << 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++ 中的继承,多态,抽象
# include <iostream>
using namespace std;
class Color{
public:
int a;
virtual int needBeImpl() = 0; //纯虚函数,Java中的抽象方法
};
class Name{
public:
int b;
void setName(){
}
};
class Sth : public Color,public Name{//用:来表示继承,还可以多继承(java单继承多实现)没有extends关键字,要加访问修饰符不要默认private。
public:
int getColor(){
return 0;
}
virtual void setName(){
//方法的重载 virtual关键字
}
};
int main(void){
return 0;
}
网友评论