我从这里得到了代码.
class Timer {
public:
Timer();
};
class TimeKeeper {
public:
TimeKeeper(const Timer& t);
int get_time()
{
return 1;
}
};
int main() {
TimeKeeper time_keeper(Timer());
return time_keeper.get_time();
}
Run Code Online (Sandbox Code Playgroud)
从它的外观来看,由于该行应该会出现编译错误:
TimeKeeper time_keeper(Timer());
Run Code Online (Sandbox Code Playgroud)
但只有在return time_keeper.get_time();存在的情况下才会发生 .
为什么这条线甚至很重要,编译器会发现time_keeper(Timer() )构造上的含糊不清.
此代码的行为与我的预期不符.
#include<iostream>
using namespace std;
class Class
{
Class()
{
cout<<"default constructor called";
}
~Class()
{
cout<<"destrutor called";
}
};
int main()
{
Class object();
}
Run Code Online (Sandbox Code Playgroud)
我期望输出'默认构造函数',但我没有看到任何输出.问题是什么?
考虑以下代码:
#include<iostream>
using namespace std;
class A
{
public:
A():age(12){}
int age;
};
int main()
{
A a();
cout << a.age << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我使用g ++编译它时,我收到一个错误:
你看不到会员的年龄,因为a不是A级()
谁可以给我解释一下这个?什么是A a()?