gpt4 book ai didi

c++ - 如何证明Copy Constructor是强制的

转载 作者:太空狗 更新时间:2023-10-29 19:58:54 25 4
gpt4 key购买 nike

我刚刚创建了一个带有整数变量和指针变量的类。创建它的对象后,我将它传递给一个函数。即使在返回函数后,程序也不会抛出异常

#include"iostream"
using namespace std;

class A
{

public :

int i;

char *c;

void show();

};

void func(A obj);

int main()
{

A a;

a.i = 10;

a.c = "string";

cout << " Before Fun " << endl;

a.show();

cout << " Going To Call func " << endl;

func(a);

cout << " After func " << endl;

a.show();

return 0;

}


void A::show()
{
cout << " The valuses in Object are " << i << '\t' << c << endl;
}

void func(A aa)
{
cout << " The valuses in Object are " << aa.i << '\t' << aa.c << endl;
}

在 Func 中,我正在传递对象 a(来自 main),它会被复制到 aa(func 堆栈)中。所以如果我调用 show 从 func 返回后(指针 c 将为 a 的 null),它会给我异常但它没有发生。请帮我证明复制构造函数的要求

最佳答案

隐藏复制构造函数。这将在所有被隐式调用的地方导致编译错误。

class A
{

public :

int i;

char *c;
private:
A(const A& _other);
};

关于c++ - 如何证明Copy Constructor是强制的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com