封装:

  1、把属性和方法进行封装。

  2、对属性和方法进行访问控制。

class和struct的区别:

  class和struct的唯一区别是默认的访问权限不一样。struct的默认访问权限是public,class的默认访问权限是private。

访问控制符:

  1、public:成员在整个程序内可以被访问,public成员定义类的接口。

  2、private:成员可以被类的成员函数访问,但不能被使用该类的代码访问,private部分封装了类的实现细节。

  3、protected:成员可以被类和派生类访问,但不能被使用该类的代码访问。

类的构造函数:

  1、构造函数的名字与类名相同。

  2、构造函数在定义时可以有参数也可以无参,但没有任何返回类型的声明。

  3、构造函数在变量定义时自动调用。

class Test
{
public:
Test() = default;//类中定义了有参构造函数后系统将不会产生默认构造函数,Test() = defualt可以重新产生默认构造函数。
Test(int num);
};

类的析构函数:

  1、析构函数的名字与类名相同,名字头加~。

  2、析构函数没有参数也没有任何返回类型的声明。

  3、析构函数在对象销毁时自动被调用。

class Test
{
public:
~Test();
};

类的拷贝构造函数:

class Test
{
public:
Test(const Test &obj);//一种特殊的构造函数,用一个对象出事化另一个对象,也存在深浅拷贝问题,编译器提供的是浅拷贝
}; class Test2
{
public:
Test2(char name, int num);
Test2(char name) :Test2(name, ){} //委托构造函数
};

拷贝构造函数被调用的时机:

1. 当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值。

Test t1;

Test t2(t1);
Test t3 = t1;

2. 若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。

3. 当函数的返回值是类对象时,系统自动调用拷贝构造函数,同时返回一个匿名对象。

  匿名对象的生命周期只存在于一行,当无类变量接时,将会直接调用析构函数;当有类变量接时,会直接将匿名变量转换成类变量。

类的组合:

class A
{
public:
A(int index)
{
this->a = a;
} private:
int a;
}; class B
{
public:
B(int a1Init, int a2Init) :a1(a1Init), a2(a2Init), b()//类的初始化列表,含有其他类(带有参构造函数)和const变量必须使用类的初始化列表进行初始化
{
;
} private:
A a1;
A a2;
const int b;
};

类的组合的调用顺序:

  1、当类中有成员变量是其它类的对象时,首先调用成员变量的构造函数,调用顺序与声明顺序相同,之后调用自身类的构造函数。

  2、析构函数的调用顺序与对应的构造函数调用顺序相反。

  

C++学习笔记3——类的封装(1)的更多相关文章

  1. 学习笔记 Java类的封装、继承和多态 2014.7.10

    1.问题:toString()没搞懂? int a = 1; Integer aa = new Integer(a); //这是实现的过程 System.out.println("Hello ...

  2. C++学习笔记4——类的封装(2)

    简介: 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.其中一元运算符有一个参数,二元运算符有两个参数. 可以被重载的运算符 + - * / % ^ ...

  3. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...

  4. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  5. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  6. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  7. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  8. .net学习笔记---HttpRuntime类

    HttpRuntime在ASP.NET处理请求中负责的是创建HttpContext对象以及调用HttpApplicationFactory创建HttpApplication. 其定义如下: publi ...

  9. C++ Primer 学习笔记_57_类和数据抽象 --管理指针成员

    复印控制 --管理指针成员 引言: 包括指针的类须要特别注意复制控制.原因是复制指针时.一个带指针成员的指针类 class HasPtr { public: HasPtr(int *p,int i): ...

随机推荐

  1. [基础] C++与JAVA的内存管理

    在内存管理上(总之一句话——以后C++工程,一定要用智能指针!) 1.同是new一个对象,C++一定得手动delete掉,而且得时刻记住能delete的最早时间(避免使用空指针).JAVA可以存活于作 ...

  2. Struts2中OGNL

    什么是OGNL OGNL:Object Graph Navigation Language  对象导航图语言 开源项目,取代页面中Java脚本,简化数据访问 和EL同属于表达式语言,但功能更为强大 让 ...

  3. Mac内建Apache

    打开终端 重启apache:sudo /usr/sbin/apachectl restart 关闭apache:sudo /usr/sbin/apachectl stop 开启apache:sudo ...

  4. CF 295E Yaroslav and Points(Splay)

    题目大意: 两个操作 1 id op  把id的位置+op 2 id op  查询在[id.op]之间的全部的数的差 思路: 关键是pushup函数. 自己退一下会发现.跟区间的总和,区间的节点个数有 ...

  5. C primer plus 读书笔记第十一章

    本章标题是字符串和字符串函数.主要是了解和字符串有关的函数. 1.字符串表示和字符串I/O 主要内容:字符串常量和字符串数组的初始化,对比了指针和字符串. 其中要注意的是,数组初始化是从静态存储区把一 ...

  6. Swift开发之 使用系统的TabbarController

    使用系统的tabbar解决图片的问题. 用sb使用系统的tabbar,弄好后发现图片始终是蓝色的,并非原来的图片,后经上网查资料,问问同事,有了以下的这些代码,做个标记. AppDelegate中 f ...

  7. IOS Dictionary和Model相互转换

    // // HYBJSONModel.h // Json2ModelDemo // // Created by huangyibiao on 14-9-15. // Copyright (c) 201 ...

  8. navicat导入mysql数据库sql时报错或数据不完全问题

    错误详情:[Err] [Imp] 2006 - MySQL server has gone away 或无提示错误,但是导入数据明显缺少字段和数据 找到服务器上的MYSQL安装目录下的my.ini文件 ...

  9. Oracle sequence排序的使用

    最近公司的项目中好多用到了Seq排序的,所以网上找些记录一下吧. 通过以下直接查询出所有的seq列表: select * from user_sequences; 查询结果如下: 查询结果和创建的基本 ...

  10. Android实现网络多线程断点续传下载(转)

    本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多 ...