小编Chr*_*ris的帖子

模板如何导致C++中的代码膨胀?

我从来没有用模板理解这个问题.对于我实例化一个方法,不同类型参数的多个类型与在函数重载方面实现相同.如果是这种情况,模板如何导致代码膨胀或超过二进制大小到某个限制.请带上清晰度!!

有时候,我是否应该考虑模板或函数重载.关于代码膨胀是我听说过的模板中的问题,但从未理解过.请解释一下.

c++

6
推荐指数
2
解决办法
7447
查看次数

在c ++中限制对纯虚函数的派生类的访问

class A
{    
public:
    void virtual magic() = 0;
    void bar()
    {
        magic();    // this should be legal
    }        
};

class B: public A
{    
public:
    void magic()
    {
        cout<<"implement magic here"<<endl;
    }
};

class C: public B
{
     void foo()
     {
         magic();     // this should not be allowed, i.e. create compile-time error
     }
};
Run Code Online (Sandbox Code Playgroud)

因此,该纯虚基类AB应访问magic(),但不排除任何派生类CB.这可以使用访问说明符和/或朋友声明或以任何其他方式实现吗?

c++ virtual

4
推荐指数
1
解决办法
961
查看次数

如何知道对象的所有者类

有没有办法知道谁是对象的所有者?让我们说类A将类B的指针保存为数据成员.B有什么方法可以知道谁拥有他?

任何帮助对我来说都意味着很多.

c++

2
推荐指数
1
解决办法
576
查看次数

在c ++中限制对象副本

class adapter
{
     private:
    adapter& operator= (adapter& j)
    {
    cout<<"i m here"<<endl;
    }

    adapter(adapter&)
    {}

    public:
    adapter()
    {}
 };

 int main()
  {

    adapter* p = new adapter;

    adapter* q = new adapter;

    p = q;

    return 0;

  }
Run Code Online (Sandbox Code Playgroud)

这里当q被赋给p时,它应该抛出编译时错误,因为我在私有部分重载了赋值运算符.但我的汇编很顺利.我在这里失踪或做错了什么?

c++

0
推荐指数
1
解决办法
93
查看次数

标签 统计

c++ ×4

virtual ×1