【发布时间】:2018-05-07 12:37:18
【问题描述】:
所以我被困在我认为很容易的事情上。
注意:以下所有内容均适用于 C++11 及更高版本。
让我们开始吧。我有一个名为“Employee”的类。它的构造函数如下:
Employee::Employee(const string& first, const string& last, const string& ssn)
: firstName(first), lastName(last), socialSecurityNumber(ssn) {}
此外,在尝试创建对象时,我主要执行以下操作:
void main()
{
string firstName;
string lastName;
string socialSec;
Employee salariedEmployee{firstName, lastName, socialSec};
}
我得到了错误:
错误:不能将变量 'salariedEmployee' 声明为抽象的 输入“员工”
然后我尝试将我的对象创建为指针,如下所示:
Employee *salariedEmployee{&firstName, &lastName, &socialSec};
并得到错误:
错误:标量对象“salariedEmployee”在初始化程序中需要一个元素
我不明白我做错了什么。我习惯于编码是 C++11 的早期版本,但我正在尝试学习这些使用花括号(统一初始化)的新技巧。我做错了什么(在这两种情况下)?
附:我用谷歌搜索了很多,但我很困惑该怎么做。我保存的两个资源是这些(但阅读了更多的东西):
【问题讨论】:
-
你的
Employee有纯虚函数(抽象类型)。与统一初始化无关 -
@appleapple 或者它是从抽象基类派生的,并没有实现完整的接口。无论哪种方式,错误都超出了 Dimitris Pantelis 的预期。
-
@Jodocus 你是对的 :) 我忘了。
标签: c++ c++11 object initialization