小编shi*_*zle的帖子

复制构造函数继承

struct A{
  virtual void what() { cout << "Base" << endl; };
};

struct B : A {
  virtual void what() { cout << "Sub" << endl; };
  int m;
  B() : m(10) {};
  B(const A & x) : m(50) {};
};

void main() {
  B b1;
  B b2 = b1;
  cout << "Number:  "
       << b2.m << endl;
};
Run Code Online (Sandbox Code Playgroud)

为什么不是b2.m = 50?我正在尝试复制一个b-object,我有复制构造函数B(const A&x):m(50).我是否需要为派生类屁股做一个复制c'tor?像B(const B&x)?? 我认为既然一个b对象有一个部分,我们可以使用B(const A&x):m(50)而不是默认的构造函数:: S

如果您具有带有A对象参数的函数,则可以发送B对象.它与拷贝构造函数有什么不同?

c++ inheritance copy-constructor

5
推荐指数
1
解决办法
3687
查看次数

使用字符串指定向量的类型

如何指定带字符串的类型?我的意思是:

string s = "int";
Vector<s> vec;
Run Code Online (Sandbox Code Playgroud)

我希望vec成为vector<int>.这可能吗?

我想创建一个用户可以键入字符串的类,并创建具有该类型的向量.

c++ types vector

5
推荐指数
1
解决办法
94
查看次数

return*this c ++

如果你有一个清除数组中所有元素的clear()函数,你是否使用void类型或referens到你正在使用的类型并返回*this.

防爆.

void Vector<T>::clear() {   
}
Run Code Online (Sandbox Code Playgroud)

要么

Vector& Vector<T>::clear(){
    return *this
}
Run Code Online (Sandbox Code Playgroud)

我真的不明白何时返回"this"以及何时使用void类型.

c++ return-type void

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

C++虚拟与否?

为什么要在具有两个以上级别的继承层次结构中声明非虚函数?有人可以给我一个例子吗?

我知道区别是什么和发生了什么,但我无法真正理解为什么以及何时想要这样做.

c++ virtual inheritance

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