我看到一個關於構造函數的在線C++測試。我可以找出大部分的答案,但在下面的一些問題上感到困惑。希望有人能幫助我。類的構造函數如何在C++中工作
下面是這個例子。
#include <iostream>
class A {
public:
A(int n = 0) : m_n(n) {
std::cout << 'd';
}
A(const A& a) : m_n(a.m_n) {
std::cout << 'c';
}
private:
int m_n;
};
void f(const A &a1, const A &a2 = A())
{
}
int main() {
A a(2), b;
const A c(a), &d = c, e = b;
b = d;
A *p = new A(c), *q = &a;
static_cast<void>(q);
delete p;
f(3);
std::cout << std::endl;
return 0;
}
我真的不明白,爲什麼是「& d = C」不輸出任何東西。還添加了另一個重載構造函數,如A(const A * a):m_n(a-> m_n){std :: cout < <'b'; }不會爲* q = & a輸出任何內容。那麼我能做些什麼才能使它工作?
非常感謝您的任何建議。我對此很好奇。
謝謝。現在清除。 :-) – ToonZ