C++
Lovin01
最好的生活是在适当的时候做适当的事情,在沿途遇见未知的自己,你好明天!
展开
-
C++结构体传指针
C++ 传结构体指针如果需要传结构体这样需要先在外面分配空间。intCXSipClient::sendSms(void *smsData,int len, int bcdType,int total, int number,int sequence,constchar *to, constchar *center) { if(m_send_msg_原创 2017-06-22 18:46:03 · 971 阅读 · 0 评论 -
C++ 创建临时对象
#include #include using namespace std;class num{public: num(){n=1;cout"构造函数执行\n";} num(int i){n=i;cout"构造函数执行\n";} ~num(){cout"析构函数执行\n";} int get()co原创 2016-05-18 19:21:56 · 560 阅读 · 0 评论 -
C++ 运算符重载
运算符重载特性: (1) 除了类属关系运算符"."、成员指针运算符".*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。(2) 重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。(3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则原创 2016-05-17 22:41:21 · 301 阅读 · 0 评论 -
(未总结完成)C++中的对象放在哪里?
C++中的对象放在哪里? 感觉越来越蒙逼了。 1.构造函数生成的对象放在哪里? 2.使用new生成的对象又放在哪里? 3.对象中的成员变量放在哪里? 4.浅复制构造函数放在哪里,做了什么? 5.深层复制构造函数放在哪里,做了什么? 6.析构函数有做了什么?原创 2016-05-17 21:53:02 · 644 阅读 · 0 评论 -
C++深层复制构造函数
深拷贝和浅拷贝的定义可以简单理解成:如果一个类拥有资源(堆,或者是其它系统资源),当这个类的对象发生复制过程的时候,这个过程就可以叫做深拷贝,反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝。原创 2016-05-17 21:39:43 · 355 阅读 · 0 评论 -
C++ 浅层复制构造函数
1. 浅层复制构造函数 所有的复制构造函数均有一个参数,即对同一个类的对象的引用。 A(A&a) 由于需要复制的对象一般不会更改,我们通常将引用定义为常量引用,这样构造函数就不用改变传递进来的对象。 A(const A&a) 这样函数就根据对象a来生成一个拷贝。这个a只是形式参数。它代表原创 2016-05-16 14:59:46 · 499 阅读 · 0 评论 -
C++ 默认析构函数
1. 与构造函数一样,假如我们不指定自己的析构函数,那么编译器将为我们创建一个默认析构函数。 析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要用户调用,而是在销毁对象时自动执行。与构造函数不同的是,析构函数的名字是在类名前面加一个”~“符号。注意:析构函数没有参数,不能被重载,因此一个类只能有一个析构函数。如果用户没有定义,那么编译器会自动生成。原创 2016-05-16 13:59:23 · 12015 阅读 · 2 评论 -
(需要确认一点)C++ 析构函数和delete运算符
现在就是最早的开始,算法和数据结构才是编程的核心。 delete运算符,delete运算符用来删除指针指向的在堆中创建的内存空间。 需要确认一点: #include #include using namespace std;class A{p原创 2016-05-16 13:43:02 · 508 阅读 · 0 评论 -
C++ 默认构造函数深度解析
当我们呢没有给一个类定义构造函数的时候,C++编译器将为我们自动创建一个不带参数的构造函数,这个不带参数的构造函数就是默认构造函数。 每个对象在创建时都要调用构造函数来为自己初始化,假如你没有提供构造函数,那么编译器就会自动建立一个默认构造函数,假如你创建了一个构造函数,不管你创建的是默认构造函数还是带参数的构造函数,编译器都不再为你提供任何一个默认构造函数。假如你还想要一原创 2016-05-16 13:30:35 · 392 阅读 · 0 评论 -
C++ 构造函数和New运算符
算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。 系统会自动在栈中为每个变量开辟内存空间,以保证数值被合理地存放。 由于栈是系统自动分配的,因此速度较快,但是缺点是可存放的空间小,2M。 使用new运算符在堆中创建一个对戏那个时,也会自动调用构造函数来实例化该对象的数据成员。/*使原创 2016-05-16 13:24:01 · 12683 阅读 · 2 评论 -
C++ 重载构造函数
1. 重载构造函数 构造函数也具备了重载的特性。#include using namespace std;class rectangle{public:rectangle(){coutrectangle(int l,int w){length=l;width=w;cout length * width rectangle(int l,int w原创 2016-05-15 21:17:03 · 12546 阅读 · 2 评论 -
C++ 函数重载
1.普通函数的重载,我们可以将一个名字相同的但是不同类型的函数重复调用多次,来处理不同类型的数据。#include using namespace std;void func(int); //声明一个无返回值并且带有一个整型参数的func函数void func(long); //声明一个无返回值并且带有一个长整型参数的func函数void func(float); //原创 2016-05-15 20:39:45 · 332 阅读 · 0 评论 -
C++ 使用const指针来传递对象
采用指针来传递对象,虽然可以避免重复调用复制构造函数和析构函数,但是由于它得到了该对象的内存地址,可以随时修改对象的数据,因此它实际上是破坏了 按值传递的保护机制。 不过我们呢仍然有解决办法,那就是使用const指针来传递对戏那个,这样就可以防止任何试图对该对象所进行的操作行为,并且保证返回一个不被修改的对象。//利用const指针来传递对象的例程如下:#原创 2016-05-14 16:17:22 · 1650 阅读 · 0 评论 -
C++ 传递对象---用值传递对象
采用指针或者引用这种按照地址传递方式的优势,在传递交大的对象的时候是非常明显的。 因为按值传递在向函数传递一个对象时,会想传递变量那样建立一个该对象的拷贝,而从函数返回一个对象时,也要建立这个被返回的对象的拷贝。 假设该对象的数据非常多时,这种拷贝带来的内存开销是相当可观的。比如说该对象拥有1000个double类型的成员变量,每个double型变量占据8个自己,10原创 2016-05-14 12:24:49 · 4238 阅读 · 0 评论 -
对于block使用的一点思考
http://blog.csdn.net/eqera/article/details/19337215这里需要用代码进行验证。原创 2016-05-14 12:04:55 · 250 阅读 · 0 评论 -
取消创建临时对象
我们知道创建一个对象会调用构造函数来为该对象开辟内存空间,而销毁该对象则需要调用析构函数类释放内存,每一次执行创建对象系统都有牺牲一定的速度和空间。而且我们要执行自加的只是对象的成员变量,那么为什么我们不返回这个执行成员变量自加之后的对象呢? 我们知道this指针就是对象的标签,而某个对象的成员变量也会被编译器自动贴上标签(this指针)证明是某个对象的,那么我们只要原创 2016-05-18 19:40:12 · 457 阅读 · 0 评论 -
(未完成)C++ 重载后置自加运算符
(未完成)C++ 重载后置自加运算符原创 2016-05-18 19:41:46 · 255 阅读 · 0 评论 -
(未完成)C++ 重载家法运算函数 operator+
(未完成)C++ 重载家法运算函数 operator+原创 2016-05-18 19:42:47 · 253 阅读 · 0 评论 -
RTP解析
1.RTP 头解析1) V:RTP协议的版本号,占2位,当前协议版本号为22) P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。3) X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头4) CC:CSRC计数器,占4位,指示CSRC 标转载 2016-10-31 11:44:03 · 771 阅读 · 0 评论 -
Xcode修改工程名称
又要做sdk工程,关于sip通信的,找了一个liblinephone的,现在得改成sdk,来先改工程名称。原创 2016-05-20 10:23:00 · 283 阅读 · 0 评论 -
C++ 嵌套类
C++ 嵌套类原创 2016-05-19 23:31:54 · 291 阅读 · 0 评论 -
C++ 友元类
C++友元类原创 2016-05-19 23:24:24 · 261 阅读 · 0 评论 -
C++ 将String类作为包含类
C++ 将String类作为包含类原创 2016-05-19 22:39:39 · 330 阅读 · 0 评论 -
(未完成)C++ 向基类的构造函数传递参数
继承固然为我们节省了不少时间和工序,但是由于子类是从基类派生出去的,因此我们在创建派生类的对象时,仍然需要对基类进行初始化。这个的原因其实就是子类将其基类的所有成员都集成过去,所以被集成的成员也就会出现在子类中,那么我们在构造一个子类的对象的时,即可调用基类的构造函数。原创 2016-05-19 14:34:45 · 512 阅读 · 0 评论 -
C++继承的构造和析构
在构造一个子类对象时,首先调用基类的构造函数,对基类成员进行初始化,然后才执行派生类的构造函数,如果这个基类仍然是一个派生类,那么继续往上构造,知道完成为止;当释放该对象时,析构函数的执行顺序恰恰与构造函数相反。 // C++primary//// Created by amesty on 16/5/19.// Copyright © 2016年原创 2016-05-19 14:28:25 · 213 阅读 · 0 评论 -
C++ 多重继承
多继承可以看作是单继承的扩展。所谓多继承是指派生类具有多个基类,派生类与每个基类之间的关系仍可看作是一个单继承。 多继承下派生类的定义格式如下: class :,,… { }; 其中,,,…是三种继承方式:public、private、protected之一。例如: class A{…};class B{原创 2016-05-19 14:09:56 · 397 阅读 · 0 评论 -
C++ 继承 访问权限控制
三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问三种继承方式 public 继承 protect 继承 private 继承组合结果 基类中 继承方式 子类中 public原创 2016-05-19 11:20:16 · 400 阅读 · 0 评论 -
C++ 继承和派生在C++ 中是如何实现的
在派生类中可以做出如下变化: 1.增加新的成员变量 2.增加新的成员函数 3.重新定义已有的成员函数 4.改变已有成员的属性继承的种类和语法 #includeclass father{protected: int Ft,Fh;public: void SFtall(i原创 2016-05-19 11:01:32 · 680 阅读 · 0 评论 -
C++ 什么是继承和派生
这篇博文对C++的继承和派生将的非常好。 http://blog.csdn.net/insistgogo/article/details/6645215 在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(derived cla原创 2016-05-19 10:36:31 · 4655 阅读 · 0 评论 -
C++ 转换类型运算符 通过operator关键字进行转换
C++ 转换类型运算符 通过operator关键字进行转换原创 2016-05-18 19:58:24 · 685 阅读 · 0 评论 -
C++ 转换类型运算符 调用构造函数将变量转化成为一个对象的成员变量
C++ 转换类型运算符 调用构造函数将变量转化成为一个对象的成员变量原创 2016-05-18 19:47:00 · 227 阅读 · 0 评论 -
C++ 转换类型运算符 调用构造函数实现的类型转换
C++ 转换类型运算符 调用构造函数实现的类型转换原创 2016-05-18 19:45:49 · 315 阅读 · 1 评论 -
(未完成)C++ 重载赋值运算函数 operator =
(未完成)C++ 重载赋值运算函数 operator =原创 2016-05-18 19:43:52 · 254 阅读 · 0 评论 -
docxgen生成接口文档的规范
/** @brief 用户登录接口 @param username 用户名,当前为手机号 @param type 登录类别,类型:enum TRLoginType @param callback 执行结束后的回调 isSuc YES 表示成功 NO表示失败 * * dic说明 * * { * *原创 2016-05-13 15:43:41 · 1600 阅读 · 0 评论 -
C++ 引用
引用几乎拥有指针所有的功能,但是语法更加简单。 1 什么是引用=====引用就是别名 1—1 引用的地址 1—2 引用就是别名常量 1—3 引用对象 1—4 空引用 2—1 按值传递 2—2 按址传递原创 2016-05-13 13:10:40 · 279 阅读 · 0 评论 -
C++ 引用和指针的区别
★ 相同点: 1. 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终转载 2016-05-13 14:35:06 · 150 阅读 · 0 评论 -
函数的定义和申明
函数的定义和说明,函数应该先定义后使用,如果是后定义需要先声明之后再使用。#include using namespace std;void A();void B();int main(){ A(); B(); return 0;}void A(){原创 2016-05-10 11:40:47 · 466 阅读 · 0 评论 -
C++注释规范
1 源文件头部注释/*************************************************Copyright:buptAuthor:Date:2010-08-25Description:描述主要实现的功能**************************************************/每行不转载 2016-05-10 11:03:48 · 353 阅读 · 0 评论 -
利用名字空间解决重命名问题
namespace a{ int b=5;}namespace c{ int b=8;}int main(){ // using namespace a;// using namespace c; int b=9; std::cout""a::b""c::bst原创 2016-05-10 10:28:47 · 261 阅读 · 0 评论 -
#include<iostream>和#include<iostream.h>的区别
#include是C++头文件库;#include是C头文件库。C++有一部分继承与C,所以C++中保留了iostream.h这种写法。使用#include的时候,要在下边加上using namespace std;例如:#includeusing namespace std;使用#include,不需要添加什么,直接调用就可以。#include原创 2016-05-10 10:02:36 · 1447 阅读 · 0 评论