哪位高手帮我解释一下下面的C++问题(已经注释在程序上,在main函数中),谢谢;

#include <iostream>
using namespace std;
class computer
{
private:
char* brand;
float price;
public:
computer(const char*sz,float pr)
{
brand=new char[strlen(sz)+1];
strcpy(brand,sz);
price=pr;
cout<<"带参数构造函数被调用"<<endl;
}
computer()
{
brand=NULL;
price=0;
cout<<"无参构造函数被调用"<<endl;
}
computer(const computer &cp)
{
brand=new char[strlen(cp.brand)+1];
strcpy(brand,cp.brand);
price=cp.price;
cout<<"复制构造函数被调用"<<endl;
}
~computer()
{
delete[] brand;
cout<<"析构函数被调用"<<endl;
}
void print()
{
cout<<"品牌:"<<brand<<endl;
cout<<"价钱:"<<price<<endl;
}
};
int main()
{
computer com1("dell",2000),com2; //为什么这样写运行过程就会出问题?原先这句和下面一句是这样的:computer com1("dell",2000);c omputer com2=com1;
com2=com1;
if(false)
{
computer com3;
com3=com1;
}
return 0;
}

第1个回答  2010-09-09
delete[] brand;
这句出问题了。可能值为空了

C++,哪位大侠帮忙把下面这个程序每行注释下,谢谢!
using namespace std;\/\/这里你少了一个分号,这是引用STL命名空间 void convert(char *str)\/\/函数名,参数是字符串指针 { while (*str != '\\0') {\/\/当指针没有指向字符串结尾时继续循环,UTF8\/UTF32字符串结尾不是\\0,因此这个方法在字符串存在中文时可能出错。if (*str >= 'a' && *s...

求高手帮忙解决下面这个C++中的一个题目。看俺的代码哪里有错...
1.求个位数,直接用n%10就可以了,你那样子是求的最高位的值 2.既然你已经定了个位为7,直接给m赋7就可以了吧。3.你上面那样子算的时候,最后退出第一个while循环的时候,n是为0的,下面不能用这个n计算,你若是不断的用n\/=10,开始应该用个变量保存这个n的值 4.还有在main中,不能单单...

在C++中,main()函数是否可以被自己调用,有什么要求吗?具体说一下。
【1】任何一个C++程序都包含一个main函数,这是规定。main函数由系统直接调用,是程序执行的入口。这个是c++标准决定的,制定这个标准后,c++编译器才会以main函数作为入口,(和C语言中一样)【2】main函数与用户自己定义的函数都是各自独立的模块,即函数不能嵌套定义,通俗的说,你不能在一个函数的函数...

我的C++程序这个错误是什么意思?怎么解决?
这是因为你一个工程里包含了多个main()函数,一个工程只能包含一个main()函数,多个就报错,建议把不用的main函数保存后删除,就没问题了。你不可以建两个工程吗?或者试试两个程序可不可以写在一个main()函数里。另外,cout<< c;和 cout<< endl;都不需要引号,有引号表示是字符串了 ...

谁能给我解释一下这段代码啊 c++的
main函数没有规定一定要如何定义,最简单的可以这样:void main(){ } 或者这样:int main(){ return 0;} 刚举的两个例子都是返回值不同,至于输入的参数可以根据你的需求选择。如果你想做成一个程序,然后人家可以在命令行里 带参数的 运行,那么可以写成你给出 的形式,比如这样(假设你的...

C++高手解释一下程序,从int main() {...到...return 0;}里面的for 循 ...
int main() { int value=0;cout<<"Enter an 8 bit binary number: "; \/\/输入8位的二进制 for (int i=7;i>=0;i--) { \/\/循环8次 char ch; \/\/声明字符变量 cin>>ch; \/\/将输入的8进制的每个字符赋给ch if (ch=='1') ...

C++程序问题,注解1,2,3这3个地方不懂,求大神解释原理
1。这是类型转换操作符重载,看函数最开头带了operator就明白了,后面带float(),就是使用的时候,类的实例放在()里面来调用。比如后面main函数中float mi = float(r2);这样来使用!2。r1 = 1000; 首先会把1000使用length的构造函数length(float miles)来生成一个右值,然后使用编译器为length类生成的...

为何c\/ c++程序中main函数是必须的?
一个C语言程序是由一个或多个函数组成的,其中必须包含一个main函数(且只能有一个main函数.)。C语言是一种计算机程序设计语言,属高级语言范畴既具有高级语言的特点,又具有汇编语言的特点,可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言。如果main中调用函数,那么这个函数必须在...

菜鸟问题:c++编译错误(急求解决)
这个不是程序的错误 估计是你工程文件建错了 或者是 工程里面没有添加进去这个文件 如果都不是的话 看下是不是软件安装有问题

C\/C++的实现问题
咱们一个问题问题来看:1.主函数调用FUNCA时将EBP入栈问题:链接器在最终链接所有目标文件生成可执行文件的时候,会寻找你的程序入口点main,main实际上会被运行时库中的某个函数所调用(main并非是程序真正的入口点,真正的入口点在运行时库中的某个函数,具体跟平台有关),所以在main函数中,首先保存...

相似回答
大家正在搜