![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
debiluz
这个作者很懒,什么都没留下…
展开
-
关于赋值重载函数
http://www.cnblogs.com/zpcdbky/p/5027481.html转载 2017-03-09 16:56:32 · 396 阅读 · 0 评论 -
从4行代码看右值引用
http://www.cnblogs.com/qicosmos/p/4283455.html 从4行代码看右值引用 概述 右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的:int i = 0; int& j = i; 这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,对右值进行绑定的引用就转载 2017-06-01 22:37:35 · 244 阅读 · 0 评论 -
dynamic_cast和static_cast
dynamic_cast: 必须是指针或引用 要有虚函数 有继承关系(否则返回空指针)static_cast: 基类转派生类不能为对象 没有继承关系的转换会失败#include <iostream>using namespace std;class B {public : virtual void f() {} };//dynamic要求有虚函数class D : public B原创 2017-06-04 21:31:15 · 283 阅读 · 0 评论 -
auto和decltype
//c++将常量存储在符号表中,不为const分配存储空间#include <iostream>using namespace std;struct{ char* name;}anon_u;struct{ int d; decltype(anon_u) id;}anon_s[100];int main(){ decltype(anon_s) as;原创 2017-06-04 20:47:10 · 314 阅读 · 0 评论 -
c++智能指针
//智能指针采用的是代理模式,接口相同,功能不同(辅助类方法)#include <iostream>using namespace std;template <typename T>class SmartPtr;template <typename T>class U_Ptr{private: friend class SmartPtr<T>; U_Ptr(T *ptr)原创 2017-04-27 00:35:10 · 257 阅读 · 0 评论 -
c++语法题
面向对象的程序设计思想是什么?答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。什么是类?答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。对象都具有的两方面特征是什么?分别是什么含义?答:对象都具有的特征是:静态特征和动态特征。静态特征是指能描述对象的一些属性(成员变量),动态特征是指对象表现出来的行为(成员函数)在头文件中进行类的声明,在对应的实现文件中进行类的转载 2017-04-12 17:27:41 · 484 阅读 · 0 评论 -
Mac下使用vim
今天简单的学了一下使用Mac自带的vimStep1 : 打开vim 在终端直接输入vim再enter即可Step2 : 开始进入的是普通模式,输入命令时要用:开头, :w为保存文件,:q退出编辑模式, 正式使用时,首先创建一个文件夹并进入该文件夹 这时候输入vim+文件名建一个文件,比如Hello.cpp,进入写代码的界面,进去的是普通模式,要输入i进行模式转换才能写。 输入esc返回普原创 2017-03-26 15:31:00 · 641 阅读 · 0 评论 -
引用返回值
函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。 例如,下面的程序是有关引用返回的4种形式:#include <iostream>using namespace std;float temp;float fun1(float r){ temp = r * r * 3.14; return temp;}float& fun2(float r){原创 2017-03-04 14:54:53 · 515 阅读 · 0 评论 -
关于函数返回值
在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。如果返回一个基本类型的变量,比如:int a;a = 5;return a;那么就会a的一个拷贝,即5返回,然后a就被销毁了。尽管a被销毁了,但它的副本5还是成功地返回了,所以这样做没有问题。但是对于非动态分配(new/malloc)得到的指针,像1那么做就会有问题,比如在某个函转载 2017-03-25 21:53:05 · 465 阅读 · 0 评论 -
c++简单的栈
Stack.h中声明了Stack类,在Stack.cpp中进行了定义 Stack的私有成员包括data指针,指向栈,tot指的是开辟总的空间,pointer指向类里面元素的位置 Stack有两个构造函数:不传参开辟大小为10的数组,传参按照参数开辟数组 Stack有两个状态函数判断栈是否为空或满(empty() full()) Stack功能: push:未满存入目标元素,满了开辟两倍原创 2017-03-25 10:12:44 · 412 阅读 · 0 评论 -
c++五大存储区
<小白转载备忘>五大内存分区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会转载 2017-03-22 22:24:47 · 1896 阅读 · 0 评论 -
构造函数用于赋值
当类中没有重载赋值运算符时,构造函数可用于赋值#include <iostream>using namespace std;class SmallInt{ int val;public: SmallInt(int i = 0) : val(i) { cout << "int initial" << endl; } operator int() const {原创 2017-06-10 16:11:45 · 1541 阅读 · 0 评论