以下这个c++程序有什么问题吗?为什么在dev c++中编译不过?

#include<iostream>usingnamespacestd;classA{public:A(){x=newint;*x=5;}//创建一个对象的同时将成员指针... #include<iostream>
using namespace std;
class A
{
public:
A(){x=new int;*x=5;}//创建一个对象的同时将成员指针变量保存在新空间中
~A(){delete x;x=NULL;}//析构对象的同时删除成员指针指向的内存空间,为了稳妥起见将 指针赋为空
A(const A &a)
{
cout<<"复制构造函数执行...\n"<<endl;
x=new int;//复制构造对象的同时将成员指针变量保存在新空间中
*x=*(a.x);//读取旧对象的成员指针变量x地址处的数据并赋给新对象的成员指针变量x所指向的内存区域
}
void print()const{cout<<*x<<endl;}
void set(int i){*x=i;}
private:
int *x;
};
int main()
{
A *a=new A();
cout<<"a:"<<a->print()<<endl;
A b=(*a);
a->set(32);
cout<<"b:"<<b.print()<<endl;
b.set(99);
cout<<"a:"<<a->print()<<endl;
delete a;
return 0;
}
vs里也不行
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励40(财富值+成长值)
百度网友ec21859
2018-11-22 · TA获得超过115个赞
知道小有建树答主
回答量:127
采纳率:79%
帮助的人:107万
展开全部

程序中出问题的是

cout<<"a:"<<a->print()<<endl;

这种写法,有三处。问题在于,print函数没有返回值,cout的<<运算歼敬符不能或改碰作用于右边是void类型的对象上,所以编译不通过。

可以修改输出形式,如下:

cout << "a:";
a->print();
cout << 衫谈endl;

这样就不会出现问题了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱笑的柯南推理
2018-11-19 · TA获得超过6191个赞
知道大有可为答主
回答量:6693
采纳率:65%
帮助的人:1146万
展开全部
你的头文件有错误:修改如如棚下
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "malloc.h"\\此处有修改
typedef struct node
{
int data;
struct node *next;
}NODE;
main()
{
NODE *head=NULL,*q;
int i;
for(i=0;i<10;i++)
{
q=(NODE*)malloc(sizeof(NODE));
scanf("%d"运橘,&q->data);
q->next=head;//从表头插入节点
head=q;
}
printf("链表遍历\n");
q=head;
while(q!=NULL)
{if(q->渣悄则next!=NULL)
printf("%d->",q->data);
else
printf("%d",q->data);
q=q->next;
}
getch();//输入代码
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木有想到GK5ym
2018-11-19 · TA获得超过208个赞
知道小有建树答主
回答量:207
采纳率:90%
帮助的人:123万
展开全部
cout<<"a:"<<a->print()<洞基<endl;
//改成
cout<<悉颤哗"a:"; 
a->print();
cout <睁行<endl;
追问
coutprint()print();cout <<endl;能解释一下为什么要这么写吗?之前那么写为什么不行?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式