// classwithcopyconstructortobefunctionparameter.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
class A
{
public:
A()
{
}
A(A &a)
{
}
~A()
{
}
};
void f(A a)
{
}
void g(A &a)
{
}
int _tmain(int argc, _TCHAR* argv[])
{
A a;
f(a);// 传值,不调用普通构造函数,但调用拷贝构造函数,也调用析构函数
g(a);// 传引用,不调用任何构造函数,也不调用析构函数
return 0;
}
/*
Q: 函数的形参是一个类的实例,类具有构造函数,函数初始化时是否调用构造函数?
A: 否。
Q: 函数的形参是一个类的实例,类具有拷贝构造函数,函数初始化时是否调用拷贝构造函数?
A: 是。
Q: 函数的形参是一个类的实例的引用,类具有构造函数,函数初始化时是否调用构造函数?
A: 否。
Q: 函数的形参是一个类的实例的引用,类具有拷贝构造函数,函数初始化时是否调用拷贝构造函数?
A: 否。
*/
具有拷贝构造函数的类作形参
最新推荐文章于 2021-05-21 01:13:06 发布