美文网首页
C++学习笔记(面向对象)

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

作者: smallstrong | 来源:发表于2017-06-14 11:39 被阅读12次

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

    相关文章

      网友评论

          本文标题:C++学习笔记(面向对象)

          本文链接:https://www.haomeiwen.com/subject/fzprqxtx.html