问几个 C++的小疑点
问几个 C++的小问题1. int main(){char achar *str&astrcpy(str,hello)printf(str)return 0}为什
问几个 C++的小问题
1.
int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
为什么 这句话 会出错 求详解
2.
A
B C
B 和C 继承与A
B*b=new B(位置);
C*c=new C(类型);
现在 我有了个 2个对象 b和c
我想对他们进行复制 并放入数组
其他语言 可以这样写
A* a[20];
A*aaa;
for(int i=0;i<20;i++)
{
if(i%2)
aaa=b.copy();
else
aaa=c.copy();
a[i]=aaa;
}
上面 这个 的意思是 我对已经 存在 b 和 c 进行复制 并把它们存进数组 但是 c++里面 我不知道 如何复制对象 求解
3.为什么 说 copy一个对象 要比new一个对象的 效率高
[解决办法]1.char a;只有1个字节
strcpy(str,"hello");拷贝6个字节,造成内存越界
2.还是new出来吧
估计这个copy是个引用
[解决办法]第一个问题LZ说的已经很明白了!
第二个问题:
不用.copy 直接等就OK
因为你的b和c都是指针a也是指针
只要不释放就可以
copy还要看你的类中有没有定义这个方法!
不是每个类都有这种方法的.
一般C/C++程序员说的拷贝对像是指如下情况:
class CA
{
public:
CA(); // 默认构造
CA(CA& aItem); // !!!拷贝构造!!!
};
当你
CA a;
CA b(a); // 效率高!!!