Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对作为类成员的char指针好奇吗?_C++_Char - Fatal编程技术网

C++ 对作为类成员的char指针好奇吗?

C++ 对作为类成员的char指针好奇吗?,c++,char,C++,Char,我在一个类声明中看到了这一点,我很好奇这是什么意思?我认为这可能是一种声明char数组将是成员的方法,但大小不是固定的,并将其作为参数,但我不确定 char *flagstr(int); 是这样吗?不,不是这样的 当您在类中看到这样的声明时 char *flagstr(int); 它声明一个名为flagstr的成员函数,该函数接受一个int类型的参数,并返回一个指向字符的指针 可以看出您正在查看一个函数声明,因为名称后面有一对括号。这可能是令人困惑的,因为省略了参数名,C++语法规则不需要程

我在一个类声明中看到了这一点,我很好奇这是什么意思?我认为这可能是一种声明char数组将是成员的方法,但大小不是固定的,并将其作为参数,但我不确定

char *flagstr(int);

是这样吗?不,不是这样的

当您在类中看到这样的声明时

char *flagstr(int);
它声明一个名为flagstr的成员函数,该函数接受一个int类型的参数,并返回一个指向字符的指针

可以看出您正在查看一个函数声明,因为名称后面有一对括号。这可能是令人困惑的,因为省略了参数名,C++语法规则不需要程序员在声明中指定参数名称;此外,可以在函数定义中省略未使用参数的名称。下面是看起来很熟悉的相同声明:

char *flagstr(int flagValue);

这只是一个函数声明,它以int作为输入参数,返回类型char*


您在这里感到困惑,主要是因为您忘记了,在函数声明中,输入参数名称不是必需的,只是它们的类型是必需的

你不可能在一个类声明中看到这一点。不确定为什么在这里进行反对票或接近票是有意义的。这是一个具体、简洁、显然认真的编程问题。我几乎被这种新语法愚弄了P我现在不觉得自己很傻吗。。。我的意思是很明显。。。好吧,我将把责任归咎于过去几周混合了各种编程语言,而忽略了我的感觉:。是的,对不起,伙计们。为你们辩护,将*附加到函数名有点误导。我会把它写成char*flagstr。可选参数名称这个词可能会误导一些新的语言,因为它可能会与可选参数int I=0混淆。@WillKrause你是对的,这听起来可能会误导。我编辑了答案来解决这个问题。谢谢