
c++基础
jklinux
一个linux下的渣渣老码农
展开
-
程序的段,堆与栈
程序的段,堆与栈原创 2017-05-04 12:31:14 · 1772 阅读 · 0 评论 -
01 namespace名称空间
namespace原创 2017-05-04 15:23:23 · 1229 阅读 · 0 评论 -
02 C++ 的引用
很多开发人员选择使用java就是避免C/C++的指针.而C++里的引用类型就是把C里的指针操作封装起来,避免直接操作内存地址,降低发生地址访问越界的问题.声明引用类型的变量: 类型& 变量名=要引用的变量名注意引用变量在声明时必须要初始化,也就是要指定引用的变量.我们只要像操作一般的变量来操作引用变量即可。代码:1 2 #include3 4原创 2017-05-04 17:25:12 · 1027 阅读 · 0 评论 -
03 函数参数的默认值
函数参数的默认值在C++里可以指定函数的参数的默认值。当调用此函数而不传递参数值时,则使用函数声明时指定的默认值。当调用函数有传递参数值时,则使用传递的参数值。1 2 #include3 4 using namespacestd;5 6 void func(int a= 33, int b = 44);7 int main(void)8 {9 fun原创 2017-05-04 17:26:40 · 766 阅读 · 0 评论 -
04 函数重载
函数重载:在C语言里,在同文件里不可以有同名的函数.在c++里可以有多个函数同名.例如我们要实现不同类型变量的add函数:1 2 #include 3 4 using namespace std;5 6 int add(int a, int b)7 {8 cout 9 return a+b;10 }11 12 double a原创 2017-05-04 17:27:38 · 797 阅读 · 0 评论 -
05 动态分配内存
动态分配出来空间在堆里,如果动态分配出来的空间使用完成后不回收,只会在所属的进程退出,系统才会回收。如果进程一直不退,动态分配越来越多的空间,会引起系统可用内存不足,这就是内存泄漏。注意:分配在堆里的空间,所在函数执行结束也不会自动回收分配在堆里的空间(会自动回收栈里分配的空间).只有调用回收函数或者进程退出才可以回收堆里分配的空间。检查C/c++程序执行时是否有内存泄漏,原创 2017-05-05 12:40:45 · 857 阅读 · 0 评论 -
06 class与struct
在C语言里可用一个结构体来描述一种类型,如描述学生信息:typedef struct {char name[20];int age; int id; }student_t;如有三个学生,则:student_t a, b, c;通常情况下,用变量成员来描述类型的属性,但是类型的行为特征应用函数来描述.在结构体只能加入函数指针变量成员来描述.原创 2017-05-05 15:43:31 · 952 阅读 · 0 评论 -
07 this指针
每个类对象内部都有一个指针变量指向自己本身,这个指针变量名为this,权限是private,只能在类的内部访问.this指针可用于获取当前对象的地址.1 2 #include3 4 using namespacestd;5 6 class MyCls {7 private :8 string name;9 10 public:11原创 2017-05-05 15:44:28 · 755 阅读 · 3 评论 -
08 const
const关键字表示限定为只读const int *p ; //表示不能通过指针变量p来改变地址上的值我们需要写一函数仅仅是接收参数的地址,而不会改变它的值时,就可以使用const.如一个函数:void func(constStudent * p); 这样反映出我们需传递Student变量的地址,函数里面不改变它的值,而且我们在传递前,必须初始化变量的值.char原创 2017-05-05 17:07:57 · 726 阅读 · 0 评论 -
09 操作符重载
操作符重载:自定义类型的对象进行运算时需要实现操作符重载函数1 2 #include3 4 using namespacestd;5 6 class Student {7 private:8 int id;9 int age;10 11 public:12 Student(intid, int age) {13 this->id= id;原创 2017-05-05 17:08:52 · 978 阅读 · 0 评论 -
10 静态公有成员与C++单例模式
1.静态属性成员:class MyCls {public:int aa;int bb;};用MyCls类型创建对象a,b;每个对象都有自己aa,bb成员,可以存放自己的属性值.但有些场合,如统计MyCls创建出对象的个数,需要所有的类对象共用一个属性成员才可以,共用的属性成员就是静态的属性成员Class MyCls {public:sta原创 2017-05-08 10:51:57 · 959 阅读 · 0 评论 -
11 继承,多重继承与虚继承
1.继承其实就是在一个类的基础上扩展新的功能的类型。#include using namespace std;class Animal {private:int age;public:void eat() {age = 88; cout }; };// Animal叫作Human的父类, Human是Animal的子类原创 2017-05-08 15:08:18 · 807 阅读 · 0 评论 -
12 虚函数与多态
1. 基类的指针因当创建一个类的对象时会创建它的父类对象.如下代码:class Animal {public:int num;};class Human : public Animal {public:int ret;};class MM : public Human {};Animal *a = new MM;原创 2017-05-08 17:44:20 · 812 阅读 · 0 评论 -
13 函数模板与类模板
模板其实就相当于提供一个类型变量,调用时再指定此类型变量具体为什么类型1. 函数模板例如:int add(int a, intb){return a+b;}double add(doublea, double b){return a+b;}它们除了类型不一样外,算法都是一样的,所以可以改成一个函数,函数参数和返回值类型为可变化即可原创 2017-05-08 17:45:51 · 731 阅读 · 0 评论 -
14 list与vector
c++里有提供标准的模板库(STL)1. list 其实就是把链表封装起来的类模板,每个节点装载的数据类型是不指定的,在创建对象时指定具体的数据类型如声明一个装int数据的链表:list mylist;mylist.push_back(88);//尾部加入mylist.push_front(99);//头部加入遍历链表时,先声明一个指向链表节点的原创 2017-05-08 17:46:53 · 868 阅读 · 0 评论