C++结构体与类的小总结

本文总结了C++中的结构体与类的区别,包括定义方法、访问控制(public, private, protected)、构造函数与析构函数、拷贝构造函数、多继承、友元以及静态成员。特别强调了类与结构体的默认访问权限和继承方式的差异,以及构造函数在初始化列表中的顺序要求。" 124631164,11787575,Nginx 重写与location配置详解,"['nginx', '运维', '正则表达式', '配置', 'web服务器']
摘要由CSDN通过智能技术生成

其中一些内容摘自http://www.runoob.com/cplusplus/cpp-classes-objects.html  

下面是我的总结

1.结构体定义方法

以单链表节点为例:

法一:

struct  LNode {
   int  data;  // 数据域
   struct LNode   *next;  // 指针域

};

这样如果在main函数中需要定义一个单链表结点则:

LNode node;

如果要定义一个指向结点的结构体指针:

LNode *p

法二:

Typedef struct  LNode {
   int  data;  // 数据域
   struct LNode   *next;  // 指针域
} *LinkList;

只是用typedef 为指向LNode的指针定义了一个新的名字而已

例如:

typedef int dog ;

格式为typedef type newnames;

这样 定义一个指向单链表结点的指针就可以直接

LinkList L;

其实完全等价于:

LNode *L

个人觉得第一种方法就够了 没必要使用第二种 至少在应付研究生入学考试以及复试的时候够了 但是有些参考书上 常用第二种

注意 LNode* p 与LNode *p是一样的效果 但是比如int*  a,b,c; 和int *a,*b,*c效果一样吗??

答 不一样 int* a,b,c只有第一个是int类型的指针,但是b,c则是int型变量 

所以养成好习惯       类型  *变量名

例子:

#include<iostream>
using namespace std;
int main(){
    int* a,b,c;
    b=5,c=4;
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
    return 0;
}

结果:

0x77451520
5
4
a输出的是十六进制的地址,而b,c是具体值

如果对a赋值会报错,

    [Error] invalid conversion from 'int' to 'int*' [-fpermissive]

int 到int *是无效的转化

2.类定义方法

class Box
{
   private:
      double length;   // 盒子的长度
      double breadth;  // 盒子的宽度
      double height;   // 盒子的高度
    public:  
       double getLength(){ //length属性的getter
         return this->length;
       }
       do
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值