0
在這兩個程序中,第二個程序工作但第一個程序不能編譯。這怎麼可能?唯一的區別是在版本二中,bar是一個指針,在版本一中它不是。C++調用父函數僅在使用指針時才起作用
版本之一:(不編譯)
#include <iostream>
class Foo{
public:
void print(){
std::cout << "asdasd" << std::endl;
}
};
class Bar : public Foo{
};
int main(){
Bar bar();
bar.print();
}
而第二個版本:
#include <iostream>
class Foo{
public:
void print(){
std::cout << "asdasd" << std::endl;
}
};
class Bar : public Foo{
};
int main(){
Bar* bar = new Bar();
bar->print();
}
另一個最令人頭疼的解析問題... – 2013-06-18 18:00:45
爲什麼downvotes?非常公平的問題和非常好的研究。對於這種情況,谷歌並不太容易。 – djechlin
這就是說你需要發佈你的錯誤信息。理想情況下,谷歌,看看有什麼會導致它。 – djechlin