
C++基础学习
Couragefff
沉迷于code无法自拔而日渐消瘦
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
运算符重载为成员函数
运算符重载实质上就是通过函数重载,重载为成员函数,它就可以自由的访问本类的数据成员,实际使用时,总是通过该类的某个对象来访问重载的运算符。如果是双目运算符,左操作数是对象本身的数据,由this指针指出,就不再需要任何参数。下面分别介绍这两种情况。 对于双目运算符B,如果要重载为类的成员函数,使之能够实现表达式oprd1 B oprd2,其中oprd1为A类的对象,则应当把B重载为A原创 2016-05-10 20:14:23 · 5231 阅读 · 1 评论 -
动态数组类
在动态数组类中,通过类的成员函数访问数组元素,可以在每次访问之前检查一下下标是否越界,使得数组下标越界的错误能够及早被发现。这种检查,可以通过C++的assert来进行。assert的含义是“断言”,它是标准C++的cassert头文件中定义的一个宏,用来判断一个条件表达式的值是否为true,如果不为true,则程序会中止,并且报告出错误,这样就很容易将错误定位。 以下是一个简单的动态数组类示例原创 2016-05-08 22:00:12 · 3624 阅读 · 0 评论 -
动态创建数组
使用运算符new也可以创建数组类型的对象,这时需要给出数组的结构说明。用new运算符动态创建一维数组的语法形式为: new 类型名【数组长度】; 其中数组长度指出了数组元素的个数,它可以是任何能够得到正整数值的表达式。 细节: 用new动态创建一维数组时,在方括号后仍然可以加小括号“()”,但小括号内不能带任何参数。是否加“()”的区别在于,不加“()”,则对数组每个元素的初始化,与执行原创 2016-05-08 18:06:44 · 2142 阅读 · 2 评论 -
动态创建对象
在C++程序中建立和删除堆对象使用两个运算符:new和delete. 运算符new的功能是动态分配内存,或者称为动态创建堆对象,语法形式为: new 数据类型(初始化参数列表); 1.如果建立的对象是一个基本类型变量,初始化过程就是赋值。 例如: int *point; point=new int(2); 动态分配了用于存放int类型数据的内存空间,并将初值2存入该空间中,然后将首地址原创 2016-05-06 21:52:16 · 1744 阅读 · 0 评论 -
指向类的非静态成员的指针
类的成员自身也是一些变量、函数或者对象等,因此也可以直接将他们的地址存放到一个指针变量中,这样,就可以使指针直接指向对象的成员,今儿可以通过这些指针访问对象的成员。 声明指针语句的一般形式为: 类型说明符 类名::*指针名;//声明指向数据成员的指针 类型说明符(类名::*指针名)(参数表);//声明指向函数成员的指针对数据成员指针赋值的一般语法形式为: 指针名=&类名::数据成员名; 访原创 2016-05-05 18:58:47 · 1160 阅读 · 0 评论 -
对象指针
我们可以通过对象名,也可以通过对象地址来访问一个对象。 虽然对象同时包含了数据和函数两种成员,与一般变量略有不同,但对象所占据的内存空间只是用于存放数据成员的,函数成员不在每一个对象中存储副本。对象指针就是用于存放对象地址的变量。对象指针遵循一般变量指针的各种规则,声明对象指针的一般语法形式: 类名*对象指针名; 例如: point *pointptr;//声明point类的对象指针变量point原创 2016-05-05 18:02:10 · 875 阅读 · 0 评论 -
用指针作为函数参数
如果以指针作为形参,在调用时实参将值传递给形参,也就是使实参和形参指针变量指向同一个内存地址。这样在子函数运行过程中,通过形参指针对数据值的改变也同样影响着实参指针所指向的数据值。 #include<iostream> using namespace std; //将师叔x分为整数部分和小数部分,形参 intpart和fracpert是指针 void splitfloat(float x,int *原创 2016-05-04 16:44:24 · 1320 阅读 · 1 评论 -
指向函数的指针
指针函数就是专门用来存放函数代码首地址的变量。在程序中可以像使用函数名一样的使用指向函数的指针来调用函数。也就是说一旦函数指针指向了某个函数,它与函数名便具有同样的作用。函数名在表示函数代码起始地址的同时,也包括函数的返回值类型和参数的个数、类型、排列次序等信息。 声明一个函数指针时,也需要说明函数的返回值、形式参数表,其一般语法: 数据类型(*函数指针名)(形参表)————————数据类型说明原创 2016-05-04 18:14:05 · 547 阅读 · 0 评论 -
私有继承
私有继承: 当类的继承方式为私有继承是,基类中的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。也就是说基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问他们,但是在类族外部通过派生类的对象无法直接访问他们。无论是派生类的成员还是通过派生类的对象,都无法直接访问从基类继承的私有成员。 经过私有继原创 2016-05-14 11:43:05 · 952 阅读 · 0 评论 -
公有继承
公有继承: 当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。也就是说基类的公有成员和保护成员被集成到派生类中访问属性不变,仍作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问他们。在类族之外只能通过派生类的对象访问从基类继承的公有成员,而无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。 代码说明:原创 2016-05-14 11:22:08 · 1181 阅读 · 0 评论 -
运算符重载
运算符重载就是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时导致不同的行为。 实质: 函数重载。在实现过程中,首先把制定的运算表达式转化为对运算符函数的调用,将运算对象转化为运算符函数的实参,然后根据是惨的类型来确定需要调用的函数,这个过程是在编译过程中完成的。 运算符重载的形式有两种,即重载为类的非静态成员函数和重载为非成员函数。 运算符重载为类的成员函数的一般语法形式为:原创 2016-05-09 22:00:57 · 961 阅读 · 0 评论