C++,从派生模板类中查看基模板类中的对象

标签 c++ templates

<分区>

当我使用 GCC 4.8.3 编译以下模板化 C++ 代码时

template <typename dtype> class Base {
public:
    dtype base;
    dtype ceiling;
    Base() { };
    virtual ~Base() { };
};

template<typename dtype> class Building : public Base<dtype> {
public:
    dtype wall;
    Building(dtype concrete) { 
        Base<dtype>::base=concrete;
        ceiling=concrete; 
        wall=concrete;
    };

    ~Building() { };
};

int main (int argc, char* argv[]) {

    Building<float>* building=new Building<float>(2.0);

    std::cout << building->base << std::endl;
}

我得到了错误

error: ‘ceiling’ was not declared in this scope
ceiling=concrete; 

看来

Base<dtype>::base=concrete;

有效,但是

ceiling=concrete;

没有。有什么方法可以修改这个模板化代码,以便在派生类构造函数中我可以只引用模板化基类中的“ceiling”,而不必澄清它来自哪个类?

提前致谢

最佳答案

您可以使用this->ceiling

关于C++,从派生模板类中查看基模板类中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020908/

相关文章:

c++ - 在这种情况下,模板参数推导如何工作?

c++ - 如何在 OSX 上使用 FTDI D2XX 库?

c++ - 从不同的 std::thread 更新 Qt GUI

c++ - 远程 gdb 在每个事件中停止

c++ - Boost property tree xml解析No such node()

java - AssertEquals 与带有非原始模板参数的集合

c++ - C++ 初学者 "while"程序

c++ - 获取数组指针模板参数的大小

templates - 在 Sphinx 的目录中列出函数

c++ - 不参与推导的模板参数包推为空的现行规则草案中的规范规则是什么?