我想允许在类的构造方法链接,我已经遇到了同样的问题,在这个C++ method chaining including class constructor,我已经尝试了建议的答案,但仍然得到同样的错误。我的代码如下:C++方法链上构造
class Signal {
public:
Signal() { }
Signal& Emphasize() {
return *this;
}
};
enum ReadType { NATIVE = 0, DOUBLE, };
class Wav : public Signal {
public:
Wav(string fileName, ReadType type) {
}
};
我试图从以下呼吁:
Wav* wave = new Wav("asf", DOUBLE).Emphasize();
和:
Wav wave = Wav("asf", DOUBLE).Emphasize();
我不知道实际的进程是否是因为可能的“强调“这不是一个构造函数,但希望我可以访问它。我在这里做错了什么,这不起作用?
希望有人能帮助:)
UPDATE:
我把 “强调()” 内为 “WAV” 一类的成员,它的工作,我怎么想。但是,有没有人知道我可以在“Signal”中访问这个成员的方式,而不必将类成员放在“Wav”中?
UPDATE:
class Signal {
public:
Signal() { }
Signal* Emphasize() {
return this;
}
};
enum ReadType {
NATIVE = 0, DOUBLE,
};
class Wav : public Signal {
public:
Wav(string fileName, ReadType type) {
}
};
int main(int argc, char *argv[]) {
Wav* wave = new Wav("asf", DOUBLE)->Emphasize();
}
提示:'new' expre ssion返回一个指针。 – jrok
对于我想要达到的目标,[Named Parameter Idiom](http://www.parashift.com/c++-faq/named-parameter-idiom.html)可能更适合。 – jrok
所以你自己回答了这个问题,导致更新中的解决方案就是我会提出的。问题是你不能做堆和堆栈分配的方法链。 –