C++学习笔记(面向对象)

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 <
C++ 中的继承,多态,抽象
# include 

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;
}

你可能感兴趣的