相关疑难解决方法(0)

在这种特定情况下,使用成员初始化列表和在构造函数中分配值之间是否存在差异?

在内部和关于生成的代码,是否有真正的区别:

MyClass::MyClass(): _capacity(15), _data(NULL), _len(0)
{
}
Run Code Online (Sandbox Code Playgroud)

MyClass::MyClass()
{
  _capacity=15;
  _data=NULL;
  _len=0
}
Run Code Online (Sandbox Code Playgroud)

谢谢...

c++ initialization initialization-list

88
推荐指数
5
解决办法
5万
查看次数

为什么必须在构造函数初始化器中而不是在其体内初始化const成员?

为什么必须声明类成员const在构造函数初始化列表中而不是在构造函数体中初始化?

两者有什么区别?

c++ constructor initialization const

64
推荐指数
2
解决办法
3万
查看次数

这两种方法在C++中实现函数的区别是什么?

假设我有一个复制构造函数

第一种方式:

Car(Car const& other)
     : Model{other.Model}, Something{other.Something}
{}
Run Code Online (Sandbox Code Playgroud)

第二种方式:

Car(Car const& other) 
{
Model = other.Model; 
Something = other.Something; 
}
Run Code Online (Sandbox Code Playgroud)

c++ function

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

构造函数中的"my_constructor:variable(x)"和"this.variable = x"之间有区别吗?

以下代码中的Demo1和Demo2之间有区别吗?

#include <iostream>

class Base {};

class Demo1 : public Base {
public:
    Demo1() : instance_variable(5) {

    }

    int instance_variable;
};

class Demo2 : public Base {
public:
    Demo2() {
        this->instance_variable = 5;
    }

    int instance_variable;
};

int main(int argc, char **argv) 
{    
    Demo1 a;    
    Demo2 b;

    std::cout << "a.instance_variable: " << a.instance_variable << std::endl;
    std::cout << "b.instance_variable: " << b.instance_variable << std::endl;

    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

我在正在阅读的一本书中看到了第一个符号,我不确定这两个是否相同,或者Demo1是否有我应该注意的细微差别.

我发现第二个更具可读性,因为我来自Java/JavaScript背景,所以我很好奇我是否可以用"Demo2"替换"Demo1"而不改变代码的含义.

另外,什么是表达式"constructor:field(x){}"?

c++

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