求助,C++中的对象什么时候可以被重复定义,什么时候不能被重复定义?

2025-04-29 06:03:39
推荐回答(5个)
回答1:

在同一个作用域内,对象或者变量是不能重复定义的,就如你main函数中的a和b。
但是在不同的作用域,或者是嵌套的子作用域内是可以重复定义的。

int main()
{
A a;

if()
{
A a; //此处处于if的局部作用域中, 可以覆盖前面的a对象定义
}
}

总之,在不同的作用域就可以重复定义,同一个作用域是不能重名的,无论是对象名称还是类型名称都不行。

回答2:

  定义一般属于占内存行为,在同一个作用域中变量不能重复定义,但可以重复声明!
  通俗理由其实比较简单;假设,你说的将你那个定义的b也可以改成a允许,那么,如果在【cout<  你不确定,当然编译器也不确定。 语言规定同一作用域同一变量只能定义一次,用你的程序总结就是“变量a只能定义一次,它将拥有自己独一无二的内存”

回答3:

少年在c/c++ 中讲究的是先声明后使用!每个变量都是有作用范围的!在一个作用范围内不能出现重复的变量名!这个你想想也知道!如果在一个范围类出现了同名变量机器怎么识别你以后用的时候用的是哪个变量!另外你说有些东西可以重复定义那应该是不在一个作用域内的!

回答4:

只有不同作用范围的变量可以重复定义,例如全局变量和局部变量可以重名。

回答5:

#include
using namespace std;
class A
{
public:
int get()const{return i;}
void set(int x){i=x;cout<<"this变量保存的内存:\t"<private:
int i;
};
int main()
{
{
A b;
b.set(9);
cout<<"对象b的内存地址:\t"<<&b<cout<}

A b;
b.set(9);
cout<<"对象b的内存地址:\t"<<&b< cout<return 0;
}