什么是类定义形式的结构体变量

 我来答
SUPERSHEEP9
2013-05-08 · TA获得超过167个赞
知道答主
回答量:118
采纳率:0%
帮助的人:40.1万
展开全部
(解释非原创)
定义一个类,这个类里面只有数据成员。其实类在只有公有数据成员的时候和结构体几乎没什么两样
C++中的Struct和Class只有2点区别:
1.class中默认的成员访问权限是private的,而struct中则是public的。
2.从class继承默认是private继承,而从struct继承默认是public继承。
除此这外无任何区别。
关于cpp中的结构体,它也支持 virtual,支持继承,但是,我并不用它,
没必要将结构体和类两个概念混用。增加自己的烦恼而已,
除非,你想在整个都是c风格的项目中的某些地方用封装,多态等oo的特性,而保持风格一致。 此外,可以用大括号的形式初始化的。
/************************实例一*****************************/
#include <cstdlib>
#include <iostream>

using namespace std;

struct ST
{
ST()
{
a=0;
b=0;
}
ST(int i,int j )
{
a=i;
b=j;
cout<<"\n ST init a="<<a;
}
int a;
int b;
};

int main(int argc, char *argv[])
{
{
struct ST st[2]={ST(1,3),ST(10,20)};
cout<<"\n now st[0]"<<st[0].a;
cout<<"\n now st[1]"<<st[1].a;
}

system("PAUSE");
return EXIT_SUCCESS;
}
/************************实例二*****************************/

#include <iostream>

struct Test {
//private:
Test() { std::cout << "Test." << std::endl; }
virtual v_proc(){std::cout << "Test.v_proc." << std::endl; }
~Test() { std::cout << "~Test." << std::endl; }
int operator +(const int a){return a+1;}
};
struct Test_CH : public Test
{
//private:
Test_CH() { std::cout << "Test_CH." << std::endl; }
virtual v_proc(){std::cout << "Test_CH.v_proc." << std::endl; }
~Test_CH() { std::cout << "~Test_CH." << std::endl; }
};

class CTest {
public:
CTest(){std::cout << "CTest." << std::endl;}
~CTest(){std::cout << "~CTest." << std::endl;}
};

int main() {
Test *o_Test;
o_Test=new Test;
o_Test->v_proc();
std::cout << "o_Test->operator +(5)="<<o_Test->operator+(5)<< std::endl;
delete o_Test;

Test_CH *o_Test_CH;
o_Test_CH=new Test_CH;
o_Test_CH->v_proc();
std::cout << "o_Test_CH->operator +(6)="<<o_Test_CH->operator+(6)<< std::endl;
delete o_Test_CH;

CTest *o_CTest;
o_CTest=new CTest;
delete o_CTest;
return 0;
}
追问
大哥,这个我早看过了,不懂,就想你举个例子说明一下
追答
eg
类中无成员函数
template
class class1
{public:
int a;
double b;
T c;
.
.
}

template
struct struct1
{
int a;
double b;
T c;

}
很明显可以当作结构体使用:
classs; 结构体则struct1 s;效果相同·

但类中若无public:
默认为private: 外界无法调用变量a b c...
老祁上海
2013-05-10 · TA获得超过126个赞
知道答主
回答量:28
采纳率:0%
帮助的人:25.8万
展开全部
语法都是了解的, 只是在用途上有些不同
定义与权限都是固定的
一般的用法是, 对struct,可以当作纯粹的存储类, 当类之间通信的时候传递复杂参数使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
委婉且肃然丶比目鱼7
2015-06-15 · 超过10用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:27.5万
展开全部
语法都是了解的, 只是在用途上有些不同
定义与权限都是固定的
一般的用法是, 对struct,可以当作纯粹的存储类, 当类之间通信的时候传递复杂参数使用.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hezhenxun
2013-05-10
知道答主
回答量:27
采纳率:0%
帮助的人:4万
展开全部
语法都是了解的, 只是在用途上有些不同
定义与权限都是固定的
一般的用法是, 对struct,可以当作纯粹的存储类, 当类之间通信的时候传递复杂参数使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式