构造函数的执行分两个阶段完成:
初始化阶段
正文执行阶段,由构造函数体内的所有语句组成.请注意,类型的数据成员始终在初始化阶段初始化,无论该成员是否在构造函数初始化列表中显式初始化.初始化发生在构造函数体的任何语句执行之前.
让我们考虑一种通过构造函数初始化类学生实例的方法-
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成员已具有值.这些值将被构造函数体内的赋值覆盖.
所以,这意味着当执行到达构造函数的开始括号时,这就是条件 -
现在,很明显,在构造函数的主体中对四个变量中的每个变量进行了赋值.
我对这件事的理解是对的吗?我不知何故觉得我错过了什么. …
我理解数据类型是什么(直观地).但我需要正式的定义.我不明白它是否是一个集合或它的名称'int''flove'等.在维基百科上找到的正式定义令人困惑.
在计算机编程中,数据类型是标识各种类型数据之一的分类,例如浮点,整数或布尔值,用于确定该类型的可能值; 可以对该类型的值进行的操作; 数据的含义; 以及可以存储该类型的值的方式.
任何人都可以帮助我吗?
谁能从基础知识解释距离矢量路由算法?过去几个小时我一直在互联网上寻找材料,但没有任何地方以初学者可以理解的方式进行解释。要么用非常小的例子来解释(尝试将算法应用到不同的例子似乎非常困难),要么解释得非常模糊。如果可能的话,请用一个“好的”例子来解释。
PS:我在理解路由器交换信息的确切时间和顺序方面遇到了很大的问题。我必须为这个算法实现一个 C 或 C++ 程序。所以我试图完全理解它。提前致谢 。
我正在使用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++.
该代码由一个类球组成,该球具有球的属性,如颜色,大小,重量以及球的"品牌"和价格.
#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)