木子剑
生命不熄,学习不止!

C++是有面向对像的特性,但有些概念还是容易让人迷糊的:

#include <iostream>
#define log(x) std::cout<<x;
extern void Log(const char* p);

/*
    一个类
 */
    class A{
private:
        int i;
public:
        void f(){
            i=20;
            log(i); // test
            //log(this);
        }

        int x;
};


/*
      主mian
 */
int main(int argc, char** argv) {

    A a;      // 一个对像
    a.x = 36; // 设一个值

    A b(a);   // 调用拷贝函数
    log("b:");
    log(b.x); // a的数据被拷贝到b了

    A c;
    c = a;    // 调用赋值函数
    log("\nc:");
    log(c.x);  // a的数据也赋值到C了

    log("\n== end ==");
}

 

 

所以,其实本质就是赋值,它不是int 也不是char,它是class类的对像。

A(const A & obj) 这是拷贝函数;A是类,obj是类所创造的对像

A& operator = (const A& obj);这是赋值函数;

 

posted on 2021-10-23 12:08  木子剑  阅读(223)  评论(0编辑  收藏  举报