C++发哥笔记(1):class的分离式写法

把class的成员函数的定义写在class之外,即class的大括号的外面。

例如,

/////////// main.cpp ////////////

class Object {

  public: int x;

  void Test();       // (1) 成员函数的声明

};

void Object::Test()   //(2) 成员函数写在外边,加上类名限定

{ }

总结一下这种写法:

1:成员变量:还是写在类里面

2:成员函数:在类里保留其函数声明,而函数的定义写在类体之外。

3:写在外面的时候,要加上类名限定(Object::)

其中,::可以理解为是表示范围的符号

分开为头文件和源文件

按照一贯的原则:类型定义写在头文件里,函数实现写在源文件里。

/////////// Object.h ////////////

class Object {

public:

  int x;

  void Test();

};

/////////// Object.cpp ////////////

#include <stdio.h>

#include "Object.h"

void Object::Test() {

  printf("x is %d \n", x);        // 仍然可以省略this->

}

注意:

1.不一定要把所有函数定义都拿出来,可以只拿一部分出来。 如果写在类体里面,编译器按照inline的规则编译它 (inline在第8章定义) 类体之外,则是普通的函数

2. 在类体中,成员函数与成员变量的排列顺序是自由的。

时间: 2024-08-30 08:26:35

C++发哥笔记(1):class的分离式写法的相关文章

C++发哥笔记(4):类的继承

继承 在C++里,有继承的语法来表示is kind of的关系 class Tutorial { }; class VideoTutorial : public Tutorial { }; 语法:class B : public A {} 表示类B继承于类A,把A称为父类(基类),把B称为子类(派生类) 当B继承于A时,则自动地将父类中的所有public成员继承. 例如, class Tutorial { public: char name[32]; char author[16]; publi

60分钟Python快速学习(给发哥一个交代)

60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空格缩进表示等. 今天自己用了60分钟快速学习了下Python的语法.和大家分享下,也算是自己这一个小时的学习总结吧! 第一步:开发环境搭建: PyCharm 4.5.4 下载地址:http://www.jetbrains.com/pycharm/download/ 支持多种类型的操作系统,我这次是在

往企业家蜕变的过程中该如何拥抱失败 4 - 赌神发哥的创业学

赌神发哥的杀手锏 (天地会珠海分舵注:成功的企业家有如高明的赌徒.高明的赌徒要数我们耳熟能详的赌神高进.本节所描述的成功的企业家应该拥有的3个特质跟赌神高进在<赌神>的表现不谋而合. 赌神2开头描述了赌神高进的妻儿遭到了仇笑痴的迫害而亡,这好比一个企业家在迈向成功时所碰到的失败,碰到的风浪. 导演王晶镜头上描述的赌神高进,特别是步入赌场时穿着风衣慢步行走有如君临天下的赌神高进,显示出的就是一个企业家应该拥有的舍我其谁的自信和能屈能伸的个性. 而在赌神1临结尾处,赌神高进运用美国领先几年的&qu

CMS发哥谈小程序:没那么强大神秘与颠覆能力却是值得反思注意

上图:逐浪官方小程序"字库大师"内测图 小程序从内测到上线,成为2016年微信教父张小龙先生口中的那个神器,直到发布,无人不在谈小程序,先是热捧,连阿里都不禁说"支付宝小程序"即将发布. 人们之所以热议小程序,一是关注其背后的移动互联网思维,二是不希望错过腾讯微信这个巨型APP所带来的"微信红利". 作为CMS研发人员,一直关注WEB与移动互联网平台,我们第一时间和客户谈到小程序,并指出其中的问题,遂形此文. 一.所谓的"红利"

防火墙之 iptables软件(Netfilter机制)(读鸟哥笔记)欢迎指出错误

kernel版本不同 防火墙机制不同--2004年以后的distributions 已经都为2.6的kernel Version 2.0:使用 ipfwadm 这个防火墙机制: Version 2.2:使用的是 ipchains 这个防火墙机制: Version 2.4 与 2.6 :主要是使用 Netfilet机制的iptables 这个软件,不过在某些早期的 Version 2.4 版本也同时支持 ipchains (编译成为模块).不过,不建议在 2.4 之后的核心版本使用 ipchain

搭建SVN服务器【涛哥笔记之svn】

1.获取软件 2.软件安装详细步骤: 1)同意许可协议,下一步 2)选择可视化操作界面,选择必填项 3)下一步,选择标准版,继续 4)下一步,设置Location安装位置.默认仓库.端口号 5)下一步,安装完成,如下图所示 注:软件安装完成后,请重启计算机,否则SVN指令可能无法使用.也可以通过任务管理器强制中止explorer.exe进程,在重新创建即可. 6)验证服务是否安装成功 打开DOS窗口,输入如下指令,效果如下图所示,代表安装成功 如果没有安装成功,原因有二: ① 未重启电脑 ② 安

马哥笔记第十六天故障排除、trap、sed、awk、bash数组、bash字符串操作

A.故障排除:             紧急救援模式:rescue,相当于一个小型的linux系统和让你切换到硬盘系统中. 1.grub损坏:                         谨慎操作 dd  if=/dev/zero of=/dev/sda count=1 bs=400   不能大于446,否则破坏分区表中数据.这时需要进入救援模式,选择Rescue installed system,选择语言.键盘设置.是否启用网络.继续continue.选择启动shell.使用chroot

马哥笔记04_01~~~05_03

04_01 useradd userdel usermod passwd chsh chfn finger id 组管理: groupadd,groupdel.groupmod.gpaswd 对比: [[email protected] ~]# -bash-3.2$     ---------此用户没有家目录,无法创建环境变量 finger:查看用户账号信息 finger USERNAME chsh:改用户的shell chfn:修改注释信息 04_02 权限管理 r: w: x: 三类用户 u

SELinux初探 (读鸟哥笔记)欢迎指出错误

SELinux 『 Security Enhanced Linux 』的缩写,字面上的意义就是安全强化的 Linux 之意 传统的文件权限与账号关系-->自主式存取控制(Discretionary Access Control, DAC) 是依据程序的拥有者与文件资源的 rwx 权限来决定有无存取的能力 以政策守则制订特定程序读取特定文件-->委任式存取控制 (Mandatory Access Control, MAC) 主体不再是使用者 而变成了程序 目标是该程序能否读取的文件资源 先要大概