| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 384 人关注过本帖
标题:c++运算符重载的问题。。头疼啊
取消只看楼主 加入收藏
lkop911
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-1
收藏
 问题点数:0 回复次数:1 
c++运算符重载的问题。。头疼啊
#include<iostream>

#include<cstring>

using namespace std;

class st

{

private:

 int x,y;

 char *name;

public:

 st(const int x1,int y1,char *name1)

 {

  x=x1;y=y1;

  name=new char[strlen(name1)+1];

  strcpy(name,name1);

 }

 st()

 {

  name=NULL;

  x=y=0;

 }

 st &operator=(const st &p);

 

 ~st()

 {

  delete[]name;

 

 }

 void print()

 {

  cout<<x<<endl<<y<<endl<<name<<endl;

 }

};

#include"eight.h"

st &st::operator=(const st&p)(为什么COM1不给初始化,程序就不执行这一段代码啊?,请教老鸟仔细的说一下)

{

  if(this!=&p)

  {

   x=p.x;y=p.y;

   delete []name;

   name=new char[strlen(p.name)+1];

   cout<<"调用复制构造函数"<<endl;

   if(name!=NULL)

   {

    strcpy(name,p.name);

    return (*this);

   }

  }

  else

  {

   cout<<"没改变"<<endl;

   return (*this);

  }

 }

int main()

{

 st com(1,2,"xbx");

 st com1=com;

 com1.print();

}
搜索更多相关主题的帖子: void include public 头疼 private 
2012-09-01 23:53
lkop911
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-1
收藏
得分:0 
....这程序是有调用啊。。可是我重载了赋值运算符啊,程序为什么调用默认的复制构造函数??
2012-09-02 10:59
快速回复:c++运算符重载的问题。。头疼啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015867 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved