gpt4 book ai didi

c++ - 构造函数初始化和在构造函数中设置的私有(private)变量

转载 作者:行者123 更新时间:2023-11-27 22:44:41 26 4
gpt4 key购买 nike

我的构造函数假设只采用一个变量。但是我很好奇你是否可以初始化构造函数定义中不存在的其他变量。

class WordAnalysis{
private:
int timesDoubled;
word *words;
int wordCount;
int index;
void doubleArrayAndAdd(string);
bool checkIfCommonWord(string);
void sortData();
public:
bool readDataFile(char*); //returns an error if file not opened
int getWordCount();
int getUniqueWordCount();
int getArrayDoubling();
void printCommonWords(int);
void printResult(int);
WordAnalysis(int);
~WordAnalysis();

};

示例:WordAnalysis 的任何实例现在都将 timedoubled 设置为 0。getter 函数是否能够在没有 setter 的情况下获取此信息?

WordAnalysis::WordAnalysis(int arrSize){

wordCount = arrSize;
int timesDoubled = 0;
int index = 0;
}

最佳答案

嗯是的,你可以在构造函数中初始化其他成员变量,即使它不采用相应的参数。

但是,在您上面给出的示例中:

WordAnalysis::WordAnalysis(int arrSize){

wordCount = arrSize;
int timesDoubled = 0;
int index = 0;
}

你实际上并没有初始化 timesDoubled 成员变量,因为你在它之前写了“int”,它声明了一个新变量并将其设置为 0。

如果你想设置你必须写的类 timesDoubled 变量:

timesDoubled = 0;

或者如果你想更明确一点,你甚至可以这样写:

WordAnalysis::timesDoubled = 0;

关于c++ - 构造函数初始化和在构造函数中设置的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44560080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com