class 和 struct
来源:互联网 发布:广东省网络医院 后窖 编辑:程序博客网 时间:2024/06/06 19:04
这篇文章解决以下几个问题:
1.结构体可以被类继承吗
2.结构体变量中含有字符串,可以直接赋值吗
3.C语言中的结构体使用与C++中的使用有不同的地方吗
4.如何重载操作符
代码:(vc6.0 win32 console application)
#include "stdafx.h"
#include <stdio.h>
#include <memory.h>
typedef struct _CA
{
int a;
float b;
char sc[100];
}CA,*PCA;
class CB:public CA
{
public:
CB();
CB(CA &ca);
~CB();
operator PCA( ) const;
void operator =( const CA& ca );
int d;
float e;
char scc[100];
};
CB::CB()
{
}
CB::CB(CA &ca)
{
*(PCA)this = ca;
}
CB::~CB()
{
}
CB::operator PCA( ) const
{
return (PCA)this;
}
void CB::operator =( const CA& ca )
{
//注意此处this指针不能用static_cast转化
*(PCA)this = ca;
}
void func(PCA pca)
{
printf("%s\n",pca->sc);
}
int main(int argc, char* argv[])
{
//演示_CA和CA是一样的
_CA ca1={1,2.0,"what"};
CA ca2={3,4.0,"isyourname"};
//演示含有字符串的结构体赋值
CA ca3=ca2;
printf("%s\n",ca3.sc);
//演示上一次赋值后,对下一次赋值有没有副作用
ca3=ca1;
printf("%s\n",ca3.sc);
//演示'='操作符的使用 也可以看出类可以从结构体上派生
CB cb1 = ca1;
printf("%s\n",cb1.sc);
CB cb2(ca2);
printf("%s\n",cb2.sc);
//演示重载操作符PCA,即函数中类实例如何直接转化成所需要类型的指针
func(cb2);
getchar();
return 0;
}
- struct和class
- struct和class
- class和struct
- struct和 class区别
- 关于class和struct
- c ++ class和struct
- class 和struct差别
- class和struct
- C++ Struct和Class
- class和struct区别
- class和struct
- struct 和 class
- struct和class 区别
- struct和class
- class和struct
- struct 和 class 不同点
- 【C++】struct和class
- struct 和class关键字
- PG 对比 Oracle
- Log4J的使用配置
- Python——插入排序
- SAP SQL 压缩 Database compression for SQL Server
- 【DP】[CodeForces - 713C]Sonya and Problem Wihtout a Legend
- class 和 struct
- Windows下使用jsoncpp
- 清纯不做作的RxBus,用法与EventBus 一致
- storyBoard中给tableView添加header和footer
- Mybatis Parameters jdbcType
- CGContextRef绘图-iOS球形波浪加载进度控件-HcdProcessView详解
- 51Nod-1435-位数阶乘
- USACO2014Open Silver GPS的决斗
- Oracle递归查询父子关系记录