c语言支持构造函数 c语言支持构造函数吗

如何用c语言实现CString的构造函数,析构函数和赋值函数类是编程人员表达自定义数据类型c语言支持构造函数的C++机制 。它和C语言中的结构类似c语言支持构造函数,C++类
支持数据抽象和面向对象的程序设计c语言支持构造函数,从某种意义上说,也就是数据类型的设
计和实现 。
那么
String
类的原型如下
class
String
{
public:
String(const
char
*str=NULL);
//构造函数
String(const
String
other);
//拷贝构造函数
~String(void);
//析构函数
String
operator=(const
String
other);
//等号操作符重载,赋值函数
ShowString();
private:
char
*m_data;
//字符指针
};
String::~String()
{
delete
[]
m_data;
//析构函数,释放地址空间
}
String::String(const
char
*str)
{
if
(str==NULL)//当初始化串不存在的时候 , 为m_data申请一个空间存放'/0';
{
m_data=https://www.04ip.com/post/new
char[1];
【c语言支持构造函数 c语言支持构造函数吗】*m_data='https://www.04ip.com/0';
}
else//当初始化串存在的时候,为m_data申请同样大小的空间存放该串;
{
int
length=strlen(str);
m_data=https://www.04ip.com/post/new
char[length+1];
strcpy(m_data,str);
}
}
String::String(const
String
other)//拷贝构造函数,功能与构造函数类似 。
{
int
length=strlen(other.m_data);
m_data=https://www.04ip.com/post/new
[length+1];
strcpy(m_data,other.m_data);
}
String
String::operator
=(const
String
other)
//赋值函数
{
if
(this==other)//当地址相同时,直接返回;
return
*this;
delete
[]
m_data;//当地址不相同时,删除原来申请的空间 , 重新开始构造;
int
length=sizeof(other.m_data);
m_data=https://www.04ip.com/post/new
[length+1];
strcpy(m_data,other.m_data);
return
*this;
}
String::ShowString()//由于m_data是私有成员 , 对象只能通过public成员函数来访问;
{
coutthis-m_dataendl;
}
测试一下c语言支持构造函数:
main()
{
String
AD;
char
*
p="ABCDE";
String
B(p);
AD.ShowString();
AD=B;
AD.ShowString();
}
C语言类一定要有构造函数吗构造函数通常用于在实例化对象时自动对内部数据成员初始化c语言支持构造函数,设置初始值、分配内存空间等 。而析构函数则用于删除对象时做收尾工作c语言支持构造函数,比如释放申请的空间等 。要创建一个对象c语言支持构造函数,就得调用构造函数 。要销毁一个对象,就会被迫的调用析构函数 。
关于C语言结构体构造函数初始化的问题?#includeiostream
#includestring
using std::cout;
using std::string;
class A{
string a;
public:
A(string ab="1wggg"){a=ab;}
string geta(){return a;}
};
void main()
{
A b;
coutb.geta();
}
C语言 类的构造函数和析构函数(考试在线等!急?。。。?/h2>类是编程人员表达自定义数据类型的C++机制 。它和C语言中的结构类似,C++类
支持数据抽象和面向对象的程序设计,从某种意义上说,也就是数据类型的设
计和实现 。
一、类的设计
1.类的声明
class 类名
{
private: //私有
...
public: //公有

推荐阅读