• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++中声明类的class与声明结构体的struct关键字详解

C++中声明类的class与声明结构体的struct关键字详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++struct,c++ struct用法,c++中struct,c++ typedef struct,c++中struct的用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

class
class 关键字声明类类型或定义类类型的对象。
语法

   [template-spec]
    class [ms-decl-spec] [tag [: base-list ]]
{
  member-list
} [declarators];
[ class ] tag declarators;
</div>

参数
template-spec
可选模板说明。
ms-decl-spec
可选存储类说明有关更多信息
tag
给定于类的类型名称。在类范围内的标记成为了保留字。标志是可选项。如果省略,定义匿名类。
base-list
此类派生其成员的类或结构的可选列表。
member-list
类成员列表。
declarators
指定类类型一个或多个实例名称的声明符列表。如果类的所有数据成员是 public,声明符可以包含初始值设定项列表。

使用举例

// class.cpp
// compile with: /EHsc
// Example of the class keyword
// Exhibits polymorphism/virtual functions.

#include <iostream>
#include <string>
#define TRUE = 1
using namespace std;

class dog
{
public:
  dog()
  {
   _legs = 4;
   _bark = true;
  }

  void setDogSize(string dogSize)
  {
   _dogSize = dogSize;
  }
  virtual void setEars(string type)   // virtual function
  {
   _earType = type;
  }

private:
  string _dogSize, _earType;
  int _legs;
  bool _bark;

};

class breed : public dog
{
public:
  breed( string color, string size)
  {
   _color = color;
   setDogSize(size);
  }

  string getColor()
  {
   return _color;
  }

  // virtual function redefined
  void setEars(string length, string type)
  {
   _earLength = length;
   _earType = type;
  }

protected:
  string _color, _earLength, _earType;
};

int main()
{
  dog mongrel;
  breed labrador("yellow", "large");
  mongrel.setEars("pointy");
  labrador.setEars("long", "floppy");
  cout << "Cody is a " << labrador.getColor() << " labrador" << endl;
}

</div>


struct
struct 关键字定义结构类型和/或结构类型的变量。

[template-spec] struct[ms-decl-spec] [tag [: base-list ]]
{ 
  member-list 
} [declarators];
[struct] tag declarators;
</div>

参数
与class的参数相同,可以参照上面的。
备注
结构类型是用户定义的复合类型。 它由可具有不同类型的字段或成员构成。
在 C++ 中,结构与类相同,只不过其成员默认为 public。
使用结构
在 C 中,你必须显式使用 struct 关键字来声明结构。 在 C++ 中,你不需要在定义该类型之后使用 struct 关键字。
可以选择在定义结构类型时,通过在右大括号和分号之间放置一个或多个逗号分隔的变量名称来声明变量。
可以初始化结构变量。 每个变量的初始化必须括在大括号中。
有关相关信息,请参阅 class、union 和 enum。
示例

 #include <iostream>
using namespace std;

struct PERSON {  // Declare PERSON struct type
  int age;  // Declare member types
  long ss;
  float weight;
  char name[25];
} family_member;  // Define object of type PERSON

struct CELL {  // Declare CELL bit field
  unsigned short character : 8; // 00000000 ????????
  unsigned short foreground : 3; // 00000??? 00000000
  unsigned short intensity : 1; // 0000?000 00000000
  unsigned short background : 3; // 0???0000 00000000
  unsigned short blink   : 1; // ?0000000 00000000
} screen[25][80];    // Array of bit fields 

int main() {
  struct PERSON sister;  // C style structure declaration
  PERSON brother;  // C++ style structure declaration
  sister.age = 13;  // assign values to members
  brother.age = 7;
  cout << "sister.age = " << sister.age << '\n';
  cout << "brother.age = " << brother.age << '\n';

  CELL my_cell;
  my_cell.character = 1;
  cout << "my_cell.character = " << my_cell.character;
}
// Output:
// sister.age = 13
// brother.age = 7
// my_cell.character = 1
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++使struct对象拥有可变大小的数组(详解)
  • 详解C++程序中定义struct结构体的方法
  • 深入剖析C++中的struct结构体字节对齐
  • C++中声明类的class与声明结构体的struct关键字详解
  • c++中struct使用注意事项
  • C++中关键字Struct和Class的区别
  • 浅析c与c++中struct的区别
  • 深入C++中struct与class的区别分析

相关文章

  • 2017-05-28详解C++编程中的条件判断语句if-else与switch的用法
  • 2017-05-28解决在Mac下直接解压C++静态库出现的问题
  • 2017-05-28C++读入XML文件示例
  • 2017-05-28C语言行优先和列优先的问题深入分析
  • 2017-05-28基于稀疏图上的Johnson算法的详解
  • 2017-05-28c++ 虚函数与纯虚函数的区别(深入分析)
  • 2017-05-28C语言中读取时间日期的基本方法
  • 2017-05-28C++ 中实现把EXCEL的数据导入数据库(ACCESS、MSSQL等)实例代码
  • 2017-05-28使用WindowsAPI实现播放PCM音频的方法
  • 2017-05-28C++采用ring3读取MBR实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用C语言模仿Python函数的实例
    • 数据结构 数组顺序存储详细介绍
    • 解析C语言中位字段内存分配的问题
    • 循环队列详解及队列的顺序表示和实现
    • 详解C++中的成员访问运算符和指针到成员运算符
    • C语言格式化输入输出函数详解
    • ubuntu中打开终端的三种解决方法
    • 浅谈十进制小数和二进制小数之间的转换
    • C++实现简单的学生管理系统
    • 实例讲解C++编程中的虚函数与虚基类

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有