C++ 对作为类成员的char指针好奇吗?
我在一个类声明中看到了这一点,我很好奇这是什么意思?我认为这可能是一种声明char数组将是成员的方法,但大小不是固定的,并将其作为参数,但我不确定C++ 对作为类成员的char指针好奇吗?,c++,char,C++,Char,我在一个类声明中看到了这一点,我很好奇这是什么意思?我认为这可能是一种声明char数组将是成员的方法,但大小不是固定的,并将其作为参数,但我不确定 char *flagstr(int); 是这样吗?不,不是这样的 当您在类中看到这样的声明时 char *flagstr(int); 它声明一个名为flagstr的成员函数,该函数接受一个int类型的参数,并返回一个指向字符的指针 可以看出您正在查看一个函数声明,因为名称后面有一对括号。这可能是令人困惑的,因为省略了参数名,C++语法规则不需要程
char *flagstr(int);
是这样吗?不,不是这样的 当您在类中看到这样的声明时
char *flagstr(int);
它声明一个名为flagstr的成员函数,该函数接受一个int类型的参数,并返回一个指向字符的指针
可以看出您正在查看一个函数声明,因为名称后面有一对括号。这可能是令人困惑的,因为省略了参数名,C++语法规则不需要程序员在声明中指定参数名称;此外,可以在函数定义中省略未使用参数的名称。下面是看起来很熟悉的相同声明:
char *flagstr(int flagValue);
这只是一个函数声明,它以int作为输入参数,返回类型char*
您在这里感到困惑,主要是因为您忘记了,在函数声明中,输入参数名称不是必需的,只是它们的类型是必需的 你不可能在一个类声明中看到这一点。不确定为什么在这里进行反对票或接近票是有意义的。这是一个具体、简洁、显然认真的编程问题。我几乎被这种新语法愚弄了P我现在不觉得自己很傻吗。。。我的意思是很明显。。。好吧,我将把责任归咎于过去几周混合了各种编程语言,而忽略了我的感觉:。是的,对不起,伙计们。为你们辩护,将*附加到函数名有点误导。我会把它写成char*flagstr。可选参数名称这个词可能会误导一些新的语言,因为它可能会与可选参数int I=0混淆。@WillKrause你是对的,这听起来可能会误导。我编辑了答案来解决这个问题。谢谢