【发布时间】:2021-02-26 22:16:11
【问题描述】:
我有以下文件:
汽车.h
#include <iostream>
using namespace std;
namespace CarLibrary {
class Car {
private:
string& _producer;
string& _model;
string& _color;
public:
Car(const string& producer,
const string& model,
const string& color);
string Show();
};
汽车.cpp
#include "car.h"
namespace CarLibrary {
Car::Car(const string& producer,
const string& model,
const string& color)
{
_producer = producer;
_model = model;
_color = color;
}
string Car::Show()
{
return _model + " (" + _producer + "): color " + _color ;
}
}
我收到以下错误:
C:...\car.cpp:5: 错误:“CarLibrary::Car”的构造函数必须显式初始化引用成员“_producer”
C:..\car.cpp:5: 错误:“CarLibrary::Car”的构造函数必须显式初始化引用成员“_model”
C:...\car.cpp:5: 错误:“CarLibrary::Car”的构造函数必须显式初始化引用成员“_color”
我正在观看视频讲座,重复教授正在做的事情,奇怪的是教授没有收到任何错误,即使我只是复制完全相同的代码。 知道有什么问题吗?
【问题讨论】:
-
复查:您确定工作代码定义了
Car的成员,如string& _model而不是string _model? -
@JaMiT 谢谢,就是这样。它实际上是字符串_model