小编jsp*_*p99的帖子

在C++中执行构造函数

构造函数的执行分两个阶段完成:

  1. 初始化阶段

  2. 正文执行阶段,由构造函数体内的所有语句组成.请注意,类型的数据成员始终在初始化阶段初始化,无论该成员是否在构造函数初始化列表中显式初始化.初始化发生在构造函数体的任何语句执行之前.

让我们考虑一种通过构造函数初始化类学生实例的方法-

Student(string &fn, string &ln, int i, int y = Freshman)
    : first_name(fn)
    , last_name(ln)
    , id(i)
    , year(y)
{}
Run Code Online (Sandbox Code Playgroud)

这是另一种,但"低效"和"不优雅"的做法 -

Student(string &fn, string &ln, int i, int y = Freshman)  
 {
     first_name = fn;
     last_name = ln;
     id = i;
     year = y; 
 }
Run Code Online (Sandbox Code Playgroud)

新代码中的此构造函数(上面的代码)分配类Student的成员.它没有明确初始化它们.是否存在显式初始值设定项,即使在执行构造函数之前,也会初始化first_name和last_name成员.此构造函数隐式使用默认字符串构造函数来初始化first_name和last_name成员.执行构造函数的主体时,first_name和last_name成员已具有值.这些值将被构造函数体内的赋值覆盖.

所以,这意味着当执行到达构造函数的开始括号时,这就是条件 -

  • 'first_name',这是一个字符串,通过调用默认的字符串构造函数(编译器' make ')来初始化.
  • 'last_name',这是一个字符串,通过调用默认的字符串构造函数(编译器' make ')来初始化.
  • "ID",它是一个整数未初始化.
  • "年",这是一个整数初始化.

现在,很明显,在构造函数的主体中对四个变量中的每个变量进行了赋值.

我对这件事的理解是对的吗?我不知何故觉得我错过了什么. …

c++ constructor

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

究竟什么是数据类型?

我理解数据类型是什么(直观地).但我需要正式的定义.我不明白它是否是一个集合或它的名称'int''flove'等.在维基百科上找到的正式定义令人困惑.

在计算机编程中,数据类型是标识各种类型数据之一的分类,例如浮点,整数或布尔值,用于确定该类型的可能值; 可以对该类型的值进行的操作; 数据的含义; 以及可以存储该类型的值的方式.

任何人都可以帮助我吗?

language-agnostic types

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

距离矢量路由算法

谁能从基础知识解释距离矢量路由算法?过去几个小时我一直在互联网上寻找材料,但没有任何地方以初学者可以理解的方式进行解释。要么用非常小的例子来解释(尝试将算法应用到不同的例子似乎非常困难),要么解释得非常模糊。如果可能的话,请用一个“好的”例子来解释。

PS:我在理解路由器交换信息的确切时间和顺序方面遇到了很大的问题。我必须为这个算法实现一个 C 或 C++ 程序。所以我试图完全理解它。提前致谢 。

algorithm router

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

当同名文件夹已存在时,如何使用boost创建新文件夹?

我正在使用boost::filesystem创建一个空文件夹(在 Windows 中)。假设我要创建的文件夹的名称是New Folder。当我运行以下程序时,会按预期创建一个具有所需名称的新文件夹。第二次运行程序时,我希望创建新文件夹 (2)。虽然这是一个不合理的期望,但这就是我想要实现的。有人可以指导我吗?

#include <boost/filesystem.hpp>
int main()
{
     boost::filesystem::path dstFolder = "New Folder";
     boost::filesystem::create_directory(dstFolder);
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期输出:

预期输出

c++ windows directory boost boost-filesystem

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

内存分配(C++)编译时/运行时?

我不确定这个问题有多合适,但是 -

我很好奇编译器如何在构造对象(内存分配)之前为内存设置内存(甚至在构造函数被调用之前!).

原始数据类型如何发生?

这听起来有点天真,但具体到底是什么?

它是完全运行时间过程,或者它(编译)有任何计划想要做到这一点,要做到这一点,在运行时,它在手之前决定编译时.我根本不知道!

对象,无论是原始类型,指针还是大类的实例,都占用一定的已知内存量.那个记忆必须以某种方式留给对象.在某些情况下,初始化该预留内存.初始化是构造函数的作用.它们不会留出(或分配)存储对象所需的内存.该步骤在调用构造函数之前执行.

换句话说,就时间而言,什么样的变量的内存分配何时发生呢?在编译(或运行时)的哪一步?

c++ memory compiler-construction constructor compilation

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

枚举和类 - 运行时错误!!

写此代码之前我的目标是只是练习和学习更多关于C++.

该代码由一个类球组成,该具有球的属性,如颜色,大小,重量以及球的"品牌"和价格.

#include<iostream>
#include<string>
using namespace std;

class ball
{
private:
    int price;                                       //Price of a ball in rupees .
    enum colour { red , green , blue } colour;       // Colour of the ball .
    string brand;                                    // Brand of the ball REEBOK ADIDAS etcetera .
    float size;                                      // Diameter of the ball .
    enum weight { light , medium , heavy }weight;    // Qualitative weight .
public:  

    ball();
    void get_price();
    void get_colour(); …
Run Code Online (Sandbox Code Playgroud)

c++ enums runtime-error class

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