当前位置: 首页 > news >正文

cpp02:类和对象

一.类和结构体的区别:

二者都是自定义变量。c语言结构体里面只能定义变量,cpp类可以定义变量和函数。cppj兼容c语言的stuct结构体。

class Date {
public:void Init(int year, int month, int day) {_year = year;_month = month;_day = day;}private:int _year;   // 成员变量加前缀 _ 区分int _month;int _day;
};int main() 
{Date d;d.Init(2024, 7, 9);return 0;
}

二.访问限定符

protected,private:在类外不能被访问。

public:在类外可以被访问。

(直到继承章节才能有区别)

class没有给访问限定符,默认是private。struct默认为public。

三.struct和类的自引用用于定义链表节点

//1.C语言中用法
struct LsitNodeC
{int val;//数据域struct ListNodeC* next;//指针域 结构体需要加struct关键字 ListNode才能表示结构体类型                  //,又因为是指针,所以指向结构体
};typedef struct LsitNodeC
{int val;//数据域struct ListNodeC* next;//指针域 结构体需要加struct关键字 ListNode才能表示结构体类型                  //,又因为是指针,所以指向结构体
}LN;//2.CPP中用法
//CPP兼容C的struct用法,同时在cpp里把struct升级成了类
stuct LsitNodeCPP
{int val;//数据域ListNodeCPP* next; 
};class LsitNodeCPP
{int val;//数据域ListNodeCPP* next; 
};

四.函数定义在类的内部/外面的区别:

函数定义在类的内部:

但inline也只是对编译器的建议,当函数很长的时候不会被采用。

struct Date 
{// public:        // C++ 默认 public,可省略void Init(int year, int month, int day) {_year = year;_month = month;_day = day;}private:int _year;int _month;int _day;
};

函数定义在类的外面:

需要进行声明和定义的分离。

struct Date 
{public:void Init(int year, int month, int day);private:int _year;int _month;int _day;
};//声明
//错误写法:因为变量使用时候需要寻找其定义,void Init是全局函数,只会在全局里面找。
而在CPP中{}表示域,此处为类域,会造成函数无法找到_year  _month  _day的定义。void Init(int year, int month, int day) 
{_year = year;_month = month;_day= day;
}//正确写法:指定Init不是全局函数,是Date类域里的成员函数。
则此时编译器除了在全局里面找,还会在Date类域里面找
void Date::Init(int year, int month, int day) 
{_year = year;_month = month;_day= day;
}

五.类域

四个域:

同一个域不能定义同名变量,不同的域可以定义同名变量。

类域和命名空间域,只影响名字隔离,不影响生命周期。

域是编译时候的概念,编译时候任何一个变量或者函数,会去找他的出处(即声明/定义),若不指定类域,则全局变量只会在全局里面找;局部变量会先在局部(比如说这个函数)里面找,再去全局找,找不到就报错。指定了类域才会去类域里面找。

六.类的实例化

声明:不开空间,只是给出模板(成员,函数)。

定义==实例化:开辟空间,实例化对象。

http://www.dtcms.com/a/420239.html

相关文章:

  • 即墨城乡建设局网站金融网站建设报价方案
  • 公司网站建设的建议电商网站建设期末考试
  • 自己的做网站cms资源
  • 图像采集卡:连接镜头与机器的“视觉神经”,释放工业智能核心动力
  • 北京移动端网站多少钱wordpress 首页跳转
  • 大连网站平台研发创客贴做网站吗
  • 如何撤销网站备案注册公司材料怎么准备
  • 学生可做的网站主题微信公众上传wordpress
  • 延吉建设局网站wordpress门户加商城
  • 高并发系统的高可用架构
  • 怎么自己开一个网站当当网网站开发计划和预算
  • 网站建设可行性报告范文网站建设 投资合作
  • 惠城网站建设有哪些做财经类新闻的网站
  • 有自己的网站做淘宝联盟号做吗房地产网站开发文档
  • 连云港公司企业网站建设网站创建人
  • C++ 并发编程最佳实践详解
  • 大型网站怎样做优化PHP国内优秀vi设计案例
  • 【论文精读】Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
  • 山东建设和城乡建设厅注册中心网站驾校视频网站模板
  • 莱芜住房和城乡建设厅网站专业网站建设哪家好
  • 时间轴网站模板仁怀哪儿做网站
  • 装修公司网站asp源码郴州做网站seo
  • 会网站开发想找兼职免费ppt模板下载简约
  • 网站运营与推广电子商务网站建设策略
  • 沈阳网站建设德泰诺谁有qq网站开发资源群
  • 北京公司网站建设定广州英铭网站建设
  • 网站建设详细步骤建建建设网站公司电话
  • 公司网站搭建费用wordpress积分 充值
  • 手机网站布局教程几分钟弄清楚php做网站
  • 网站建设与维护的试卷网站建设里面包含什么语言