0
点赞
收藏
分享

微信扫一扫

构造函数实例走读

凯约 2022-04-18 阅读 78
c++

#include <iostream>

using namespace std;

class A;

class A {
private:
    int a;
public:
    explicit A(int a_ = 10);
    A(const A &a_); //复制构造函数必须加const,否则A aaa = A(aa_);会报错 
    ~A();
    A &operator=(const A &a_);
    int get_a() const;
    void set_a(int a_);
}; 

A::A(int a_) : a(a_)

    cout << "构造函数A" << endl;
    return;
}

A::A(const A &a_)

    *this = a_;
    cout << "复制构造函数A" << endl;
    return;    
}

A::~A()
{
    cout << "析构函数~A" << endl;
    return;
}

A &A::operator=(const A &a_)
{
    *this = a_;
    cout << "赋值运算符重载函数A" << endl;
    return *this;
}

int A::get_a() const
{
    return this->a;
}

void A::set_a(int a_)
{
    this->a = a_;
    return; 
}

int main(int argc, char *argv[])
{
    int aa_ = 100;
    A aaa = A(aa_); // 这里未调用复制构造函数,怀疑编译器优化为A aaa(aa_); 
    return 0;
}

举报

相关推荐

0 条评论