
C++ primer plus 学习
文章平均质量分 52
LeeBooL
这个作者很懒,什么都没留下…
展开
-
C++ 学习 new
new 还有一种形式是布局new , int buffer2 = new int [10]; int * p4=new (buffer2) int [20];`则 以p4为首地址的数组,会使buffer2的为首地址的内存块 placement new操作符使用的是静态内存,而不是动态分配的内存。这就意味着,不能用delete操作符来对它进行内存释放当两个new出来的内存是根据同一个类型的首地址原创 2015-11-18 21:11:47 · 364 阅读 · 0 评论 -
C++ 学习 (容器与继承)
C++ 容器中类型是固定的,一个容器不可能共存多种类型,但是我们可以将一个派生类的普通指针转换成一个基类指针一样,我们也可以把一个派生类的只能指针换成是基类指针。#include <iostream> #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <ext/memory> #include <vector>u原创 2015-12-31 13:25:49 · 807 阅读 · 0 评论 -
C++ 学习(派生类到基类准还的可访问性)
当派生类是以公有方式继承时,用户代码才能使用派生类向基类的转换,否则用户代码不可完成转换 无论派生类是以哪种方式继承,派生类的成员函数和友元函数都可以完成派生类向基类的转换。 设派生类是D, 基类是B, 当以protected方式继承时,D的派生类的成员函数和友元可以完成派生类向基类的转换, 但是如果D继承B 的方式是private则不可以。 代码写得有点恶心 #include <iostream原创 2015-12-30 15:23:51 · 520 阅读 · 0 评论 -
C++ 学习(使用 using 改写继承类继承成员的性质)
#include <iostream> #include <string.h> #include <stdio.h>using namespace std; class A{ public : int d; public: void getd(){ cout<<d<<endl; } };class B:private A{ public : usin原创 2015-12-30 15:36:52 · 856 阅读 · 0 评论 -
C++ 学习(友元, 异常, 其他)
包含: http://www.cnblogs.com/uniqueliu/archive/2011/08/01/2124261.htmlobject.func().func2(); class A { //...};class B { //... A a; A b; }; #include <iostre原创 2015-12-01 09:48:17 · 322 阅读 · 0 评论 -
C++学习 (使用类)
友元函数, 常用的是对<<的重载 #include <stdio.h> #include <iostream>using namespace std; struct node { double x; double y; node(){}; node(int _x, int _y){ x =(double) _x; y = (double)原创 2015-11-19 18:22:33 · 243 阅读 · 0 评论 -
C++ 学习(继承和动态内存分配)
1> 派生类不使用newclass baseDMA{ private: char * label; int rating; public: baseDMA(const char *l = "null", int r = 0); baseDMA(const baseDMA & rs); virtual ~baseDMA(); baseDMA & operator原创 2015-11-21 14:33:43 · 404 阅读 · 1 评论 -
C++ 学习(虚函数)
1>静态联编,动态联编 将源代码中的函数调用解释为执行特定的函数代码块被称为函数名联编 在C语言中,没有函数的重载,所以,在编译过程中就可以完成函数的联编,这种叫静态联编。 而C++中,虚函数的使用,使得在编译过程中我们无法得知使用的是哪一个,所以编译器 只能在程序运行时选择正确的虚函数代码,这种叫动态联编。2> 虚函数的工作原理 编译器处理虚函数的方法: 给每个对象添加一原创 2015-11-21 13:51:00 · 246 阅读 · 0 评论 -
C++ 学习 (static, extern)
首先从静态变量说起. C++里面静态变量有三种: 分别是外部链接性,内部链接性和无链接性. 声明外部链接的变量的方法是在代码块外面声明它. 此变量是全局变量,多文件中亦可用. 声明内部链接的变量的方法是在代码块外面声明它并加上static限定符. 此变量是全局变量,但仅在本文件中可用. 声明无链接的变量的方法是在代码块里面声明它并加上static限定符. 此变量是局部变量,但仅在本原创 2015-11-18 20:15:47 · 266 阅读 · 0 评论 -
C++ 学习 (static_cast、 volatile 等)
volatile ,变量修饰符,用于表示此变量是变化的,存取值时,会从内存直接读取,而不进行优化。 注意: (1) 可以把一个非 volatile int 赋给 volatile int,但是不能把非 volatile 对象赋给一个 volatile 对象。 (2) 除了基本类型外,对用户定义类型也可以用 volatile 类型进行修饰。 (3) C++ 中一个有 volatile 标识符的原创 2015-11-24 10:24:28 · 492 阅读 · 0 评论 -
c++学习 ( new, delete)
c++是面向对象的编程语言, 其强调的是在运行阶段进行决策,而不是在编译阶段, 所以引入 new ,delete 等 来进行动态内存分配 new 返回的是一个地址, 如 int *p = new int; int *arr = new int [10]; 此时 new 返回的是一个可以容纳int类型的地址。 计算机可能会由于没有足够的内存而无法满足new,在这种情况下new会返回0原创 2015-11-17 18:34:20 · 359 阅读 · 0 评论 -
C++ 学习
union (共用体) 共用体里可以包含多个变量类型,他们公用一块内存,也就是说,每次只能出现一个, example : union test{ int a; double b; } 共用体test 中的a, b使用同一块内存,只能调用test.a or test.b二者绝对不能同原创 2015-11-17 18:23:28 · 246 阅读 · 0 评论 -
c++学习(函数模板, 类模板)<1>
函数模板 模板形参不能为空。一但声明了模板函数就可以用模板函数的形参名声明类中的成员变量和成员函数,即可以在该函数中使用内置类型的地方都可以使用模板形参名,声明了形参,而没有使用,会不通过编译。额我的是这样 template <typename T> or template <class T>template 与 <> 之间必须无其他内容。 DEMO#include <iostream> #i原创 2015-11-23 11:07:37 · 266 阅读 · 0 评论 -
c++学习(函数模板, 类模板)<2>
ps: 不知道为什么<1> 的后面显示不全 。。。 即使删一点前面的文字也显示不全。。。。,等有机会了一定自己搭博客而如果加上const:int big(const T &a,const T &b)那么就可以: cout<template<class type,int width> //type为类型参数,width为非类型参数 在类A中声明了两个类型为T的成员变量a和b,还声明了一个返回类型为T原创 2015-11-23 13:58:44 · 311 阅读 · 0 评论 -
C++ 学习(虚基类)
#include //基类 using namespace std; class CBase { protected: int a; public: CBase(int na) { a=na; cout<<"CBase constructor! "<<endl; } ~CBase(){cout<<"CBase decons原创 2015-11-22 15:37:50 · 367 阅读 · 0 评论 -
C++ 学习(类的继承,派生)
基类指针或引用只能调用基类方法,但基类只能跟引用之只能调用基类继承过来的方法, 不可以将基类指针或引用赋值给派生类指针或者引用 #include <iostream> #include <stdio.h>using namespace std; class Person { public: string name; int age; Person(){}; P原创 2015-11-20 10:07:27 · 321 阅读 · 0 评论 -
C++ 学习(右值引用, std::move)
参考: http://www.cnblogs.com/lebronjames/p/3614773.html#include <iostream> #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <ext/memory> #include <vector> #include <set> #include <st原创 2015-12-31 14:24:25 · 641 阅读 · 0 评论