第7题 给定如下代码,下面描述错误的是( )。
【答案】D
【考纲知识点】 结构体嵌套
【解析】
代码分析
struct Person {
std::string name;
int age;
struct Address {
std::string street;
std::string city;
};
Address address;
};
此代码定义了一个Person结构体,其中嵌套了一个Address结构体,并且Person结构体有一个Address类型的成员address。
各选项分析
选项A:从代码中可以明显看出,Address结构体定义在Person结构体内部,所以结构Person内嵌套结构Address,该选项描述正确。
选项B:代码中Person结构体包含一个Address类型的成员address,即Address address;,该选项描述正确。
选项C:对于一个Person类型的变量p,可以通过p.address.street和p.address.city来访问和初始化address成员的street和city属性,如p.address.street = "123 Main St"; p.address.city = "Anytown";,该选项描述正确。
选项D:虽然结构体的嵌套在一定程度上可以减少命名冲突,但过多的嵌套会增加代码的复杂度,降低代码的可读性和可维护性。因此,在实际编程中需要控制嵌套层次,避免过度嵌套。所以该选项描述错误。
综上,答案选D。