gpt4 book ai didi

c++ - 在成员函数的参数列表中查找名称

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:30 25 4
gpt4 key购买 nike

typedef int abc;

class Some{
public:
abc foo(){...}
typedef double abc;
};

在上面的代码中,我得到了一个错误:

error: changes meaning of 'abc' from 'typedef int abc'

因为在c++ primer,fifth edtion这本书中,它说:

Class definitions are processed in two phases:

1.First, the member declarations are compiled.

2.Function bodies are compiled only after the entire class has been seen.

但是在这里的代码中:

typedef int abc;

class Some{
public:
int foo(abc){...}
typedef double abc;
};

我在参数列表中设置了abc。但我没有得到那种错误,编译器工作得很好。为什么后面的代码不会给我任何类似于前者的错误?

最佳答案

我认为没有任何理由。此错误不需要诊断(根据标准 C++),因此当您的代码中出现此错误时,行为实际上是未定义的。

你的编译器只是没有检查参数列表是否有这个错误,但很可能已经检查过了。

关于c++ - 在成员函数的参数列表中查找名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525449/

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