关于类对象的赋值 CMyObject a="ABCD";a="EFGH";char* str=a;为了使以上与局部产生编译错误,请问CMyObject函数头应该如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //-----------CMkstruct.cpp-----------------#include "stdafx.h" //这里加了没#include "mkStruct.h"CMkStruct::CMkStruct(void){ }CMkStruct::~CMkStruct(){} int CMkStruct::getValue(){ return event;}void CMkStruct::setValue(int m){ event = m;}//----------CMkStruct.h------------class CMkStruct{private: int event;public: CMkStruct(void); ~CMkStruct(void); int getValue(void); void setValue(int m);};----------------------CMkStruct myStruct;myStruct.setValue(10);myStruct.getValue(); 我想问的是该如何实现CMyObject,为了让以上语句编译不产生错误 第一二句我可以实现,第三句不知道如何实现,推荐使用拷贝构造函数,我可以给你个DEMO,如果你需要。 CMyObject{...CMyObject(const char*);//CMyObject a="ABCD";CMyObject& operator=(const char*);//a="EFGH";operator char*() const;//char* str=a;} 第一句的实现,注意初值要用一个参数的构造函数实现 CMyObject(const char *str);第二句的实现,注意这时候要重载等号,返回值应该是this指向的对象 const CMyObject& operator =(const char *str);第三句的实现,这时候要重载char*操作符,返回值是char* operator char*() const; 看一下CString类的源代码就知道了 class CA{public: CA(){} CA(char * p){str=p;} ~CA(){}public: void operator = (char*p){str=p;str.MakeReverse();}public: CString str;};...{ CA a("abcd");//构造函数 CA b="bcde";//构造函数 CA c; c="ABCD";//没有operator=则是构造函数,有operator=则operator=}第三句不可能实现 如何保持界面的系统同步? 各位大虾帮帮小弟!小弟感激不尽!!!祝各位事业有成! 高分求web日志挖掘的源代码,分数不够可以再加,急急急!!! 基于Visual C++.NET的GDI+开发教程 窗口分割与视图的问题,同时也是窗口通信之间的问题,谢谢了!! 大家都来调试这段让你意想不到的代码 如何动态连接DBF数据库? 一个关于“一次只能启动一个实例”程序的问题 有关CEdit类的一个问题 判断的问题 紧急求救!VC6编译出现fatal error C1601: unsupported inline assembly opcode 如何返回数据啊?类之间传递数据
#include "stdafx.h" //这里加了没
#include "mkStruct.h"CMkStruct::CMkStruct(void)
{
}CMkStruct::~CMkStruct()
{
} int CMkStruct::getValue()
{
return event;
}
void CMkStruct::setValue(int m)
{
event = m;
}//----------CMkStruct.h------------
class CMkStruct
{
private:
int event;
public:
CMkStruct(void);
~CMkStruct(void); int getValue(void);
void setValue(int m);
};----------------------
CMkStruct myStruct;
myStruct.setValue(10);
myStruct.getValue();
如果你需要。
{
...
CMyObject(const char*);//CMyObject a="ABCD";
CMyObject& operator=(const char*);//a="EFGH";
operator char*() const;//char* str=a;
}
CMyObject(const char *str);
第二句的实现,注意这时候要重载等号,返回值应该是this指向的对象
const CMyObject& operator =(const char *str);
第三句的实现,这时候要重载char*操作符,返回值是char*
operator char*() const;
{
public:
CA(){}
CA(char * p){str=p;}
~CA(){}
public:
void operator = (char*p){str=p;str.MakeReverse();}
public:
CString str;
};...
{
CA a("abcd");//构造函数
CA b="bcde";//构造函数
CA c;
c="ABCD";//没有operator=则是构造函数,有operator=则operator=
}
第三句不可能实现