【Cpp】考点·C++数据抽象

构造函数

  自动初始化对象的特殊的成员函数

  与所属的类名同名

  可以在类中声明并定义构造函数,或在类中声明而在外部定义

  可以同时有几个含有不同参数的构造函数,实例化时通过不同参数定义不同的对象


 1 #include <iostream>
2
3 using namespace std;
4
5 class date
6 {
7 int month, day, year;
8 public:
9 date()
10 {
11 day = 1;
12 month = 1;
13 year = 1999;
14 }
15 date(int x)
16 {
17 day = x;
18 month = 1;
19 year = 1999;
20 }
21 date(int x, int y, int z)
22 {
23 day = x;
24 month = y;
25 year = z;
26 }
27 void PrintDate()
28 {
29 cout << "DAY: " << day << endl;
30 cout << "MONTH: " << month << endl;
31 cout << "YEAR: " << year << endl;
32 }
33 };
34 int main()
35 {
36 date now;
37 date today(4);
38 date all(23,3,1999);
39 now.PrintDate();
40 today.PrintDate();
41 all.PrintDate();
42 return 0;
43 }

析构函数

  在对象销毁时自动调用的成员函数

  编译器会自动生成对析构函数的调用

  与类同名,但是在函数名前有个波浪号(~)

  析构函数没有返回类型,也不带参数

作用域

  使用作用域解析操作符(::)在类外定义成员函数

  return_type class_name :: member_functions(arg1, arg2, ..., argn){}

  参数的类型必须与声明的类型完全匹配

静态变量

  同一个类的所有对象共享数据项

  只会为整个类创建一个静态数据项

  只在类的内部可见

  生命周期贯穿整个程序

  static date_type variable

new

  用于为类的对象创建内存空间

  如果成功,返回所分配内存空间的指针

delete

  用于显式销毁由new创建的对象


私货:08:38:53  好久没有在这里写字了。今天一天没有课,在图书馆泡一整天搞定CPP

时间: 2024-10-08 09:09:50

【Cpp】考点·C++数据抽象的相关文章

【Cpp】考点·堆栈&amp;动态内存分配

动态内存分配 堆内存分配与释放 C/C++定义了四个内存区间:代码区,全局变量与静态变量区,局部变量区(栈区),动态内存区(堆区) 通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间.这种内存分配称为静态存储分配.有些操作对象只在程序运行时才确定,这样编译时无法为他们预定存储空间,只能在程序运行时,系统根据运行时的要求进行内存分配,这种方法称为动态存储分配.所有动态存储分配都在堆区中进行. 当程序运行到需要一

【Cpp】考点·函数重载

一.什么是函数重载 函数重载(overloaded)是指,在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数.这组函数被称为重载函数.重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处. 举个栗子 1 #include<iostream> 2 using namespace std; 3 4 void print(int i) 5 { 6 cout << "print a integer: &qu

【Cpp】考点·引用

一.引用 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名 = 目标变量名: int a; int &ra = a; (1)&在此不是求地址运算,而是起标识符作用. (2)类型标识符是指把目标变量的类型. (3)声明引用时,必须同时对其进行初始化. (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名.且不能再把该引用名作为其他变量名的别名. (5)生命一个引用,不是定义了一个新变量,它只表示该引用

【Cpp】考点·类与对象的概念

类的定义 class Date//用class定义一个类 { public://公有成员:内部和外部都可以访问 void SetDate(int y,int m, int d); int IsLeapYear();//成员函数 void Print(); private://私有成员:内部可以访问,但外部不可以访问 int year, month, day; };//类声明以分号结束 实现部分可以定义在类外部: void Date::SetDate(int y, int m, int d) {

【Cpp】考点·宏

一.#define的基本用法 1.#define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本.该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义. (1)简单的宏定义 #define <宏名> <字符串> #define PI 3.1415926 (2)带参数的宏定义 #define <宏名> (<参数表>) <宏体&g

C++ Primer 学习笔记_56_类与数据抽象 --消息处理示例

复制控制 --消息处理示例 说明: 有些类为了做一些工作需要对复制进行控制.为了给出这样的例子,我们将概略定义两个类,这两个类可用于邮件处理应用程序.Message类和 Folder类分别表示电子邮件(或其他)消息和消息所出现的目录,一个给定消息可以出现在多个目录中.Message上有 save和 remove操作,用于在指定Folder中保存或删除该消息. 数据结构: 对每个Message,我们并不是在每个Folder中都存放一个副本,而是使每个Message保存一个指针集(set),set中

opencv源代码分析之二:cvhaartraining.cpp

我使用的是opencv2.4.9.安装后.我的cvboost..cpp文件的路径是........\opencv\sources\apps\haartraining\cvhaartraining.cpp,研究源代码那么多天,有非常多收获.opencv库真是非常强大.当中在这篇博文中我有部分凝视,其它的有关知识请參考我博客http://blog.csdn.net/ding977921830?viewmode=contents.详细内容例如以下: /*M///////////////////////

C++ Primer 学习笔记_23_类与数据抽象(9)--四种对象生存期和作用域、static 用法总结

C++ Primer 学习笔记_23_类与数据抽象(9)--四种对象生存期和作用域.static 用法总结 前言: 从上图可知,程序占用的内存被分了以下几部分. (1).栈区(stack) 存放函数的参数值,局部变量的值等,内存的分配是连续的.栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁,其特点是效率高,但空间大小有限 注意:通常栈空间容量比较小,一般是1MB-2MB,所以体积比较大的对象不适合在栈中分配. (2).堆区(heap) 由malloc系列函数或new操作符

面试必看:java面试考点干货精讲视频教程

Java作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数.很多java程序员在学成之后,会面临着就业的问题.在面试的过程中,面试技巧是一项很重要的能力. 今天要给大家介绍的是一个java经典面试套路精讲视频教程,需要的朋友可以看看,希望能帮助到大家! 课程目录: 第一节. String Stringbuffer Stringbuilder 深度解析第二节. 完美回答面试题Int 与Integer的区别第三节. 以数据结构挖掘集合面