C++语言
文章平均质量分 67
iOS爱到疯
问君能有几多愁 ? 恰似写完代码改需求!!
大肚能容,容天下难容之事;慈颜常笑,笑天下可笑之人!
展开
-
C++成员变量指针的用途(使用场景)
#pragma 成员指针的使用场景#include using namespace std;//结构体struct Date { int year; int month; int day; void show(){ cout << year << ' ' << month << ' ' << day << endl; }};原创 2015-01-10 11:42:48 · 1032 阅读 · 0 评论 -
C++中的引用类型
•引用是另外一个变量的别名•引用的声明 int iVal; int & iRef = iVal;•引用必须初始化,且必须用变量初始化。 不能写:int& a = 10 可以写成const int& a = 10;//常量引用•不可能有空引用,必须确保引用和一块合法的存储单元关联•当一个引用被初始化为指向一个原创 2015-01-12 16:23:41 · 608 阅读 · 0 评论 -
C++的拷贝构造函数
1• 类会提供默认的拷贝构造函数 –默认的拷贝构造函数会完成所有成员的逐个复制2• 拷贝构造的调用时机: –函数值传递时 –函数返回时 –用同类型的对象初始时3• 何时需要自定义拷贝构造函数? –类中有指针(或引用 )成员时 –希望自定义对象原创 2015-01-26 18:01:57 · 627 阅读 · 0 评论 -
C++的static静态变量
1• 静态成员变量的初始化需要在类外完成2• 静态成员不属于具体的某个对象,而属于整个类3• 所有对象共享本类中的静态成员4• 静态成员最好直接通过类名::成员来访问和调用//// main.cpp// Static//// Created by 06 on 15/2/3.// Copyright (c) 2015年 黄永锐. All rights原创 2015-02-03 14:18:43 · 679 阅读 · 0 评论 -
C++的static静态函数
静态成员函数中没有this指针#include using namespace std;int y; //全局区的变量 在哪里都可以访问/*** C中的使用方式 ****///1.限制只能在本文件中访问static int x;//2.函数中的static变量,不受函数的生命周期影响,程序开始时候创建,程序结束时候销毁void test(){ static i原创 2015-02-03 15:26:48 · 614 阅读 · 0 评论 -
C++什么时候调用拷贝构造函数和什么时候调用构造函数
拷贝构造函数 都是在什么情况下调用???/* ** 什么时候调用拷贝构造函数 ** */#include using namespace std;//日期类class Date{ public: int year,month,day; Date(){//无参构造 cout << "日期类的构造函数" <<原创 2015-02-03 12:21:37 · 5545 阅读 · 2 评论 -
C++类的基本认识
面向对象编程:•万物皆对象•程序就是一组对象,对象之间通过发送消息互相通知做什么•每一个对象都有它自己的由其他对象构成的存储区•每一个对象有一个类型•一个特定类型的所有对象都能接收相同的消息类:•类是用户定义的数据类型•在类中声明的变量和函数称为类的成员 变量称为数据成员(也叫成员变量) 函数称为成员函数(有时称为原创 2015-01-18 12:08:20 · 691 阅读 · 0 评论 -
成员函数指针的应用 之 仿写OC里面UIButton的回调机制(二)
//// main.cpp// Basic//// Created by 06 on 15/1/9.// Copyright (c) 2015年 黄永锐. All rights reserved.//#include using namespace std;//struct NSObject{//负责内存管理的类 bool init(){原创 2015-01-17 15:00:32 · 446 阅读 · 0 评论 -
C++中的构造函数与创建对象的(简单)过程
•构造函数 –和类名相同 –没有返回值类型 –只在建立对象的时候被自动调用一次 –调用构造函数的主要目的是初始化对象•一个对象的创建过程: –分配内存空间 –初始化成员变量,如果成员是对象,构造他 –调用构造函数•默认的空参构造函数构造函数的使用•构造函数重载原创 2015-01-19 15:22:59 · 7153 阅读 · 2 评论 -
成员函数指针的应用 之 仿写OC里面UIButton的回调机制(一)
//// main.cpp// Basic//// Created by 06 on 15/1/9.// Copyright (c) 2015年 黄永锐. All rights reserved.//#include using namespace std;//struct NSObject{//负责内存管理的类 bool init(){原创 2015-01-17 14:59:15 · 700 阅读 · 0 评论 -
成员函数指针的应用 之 仿写OC里面UIButton的回调机制(三)
//// main.cpp// Basic//// Created by 06 on 15/1/9.// Copyright (c) 2015年 黄永锐. All rights reserved.//#include using namespace std;class UIButton;//struct NSObject{//负责内存管理的类 bool原创 2015-01-17 15:01:39 · 581 阅读 · 0 评论 -
C++的类
创建C++的类主要有两个文件:.cpp和.h结尾的两个文件。 .h结尾的是头文件,对外公开的接口。c.pp是具体的实现。也就是说变量和函数的声明或者类的声明都写在.h头文件中。•用class定义类 成员默认为私有•类中成员的作用域 private protected public以下是简单原创 2015-01-19 19:04:12 · 676 阅读 · 0 评论 -
C++的this指针
1. 一个对象占多大空间呢? 是由对象里面的成员变量决定的。 2.成员函数保存在哪儿? 不在对象的内存里面,它在代码区。所有函数写完都在代码区,只有在调用的时候才去代码区找。既然函数不在对象里,那么函数里面的那个this指针代表当前对象是怎么回事??? 3.调用成员函数时,会自动传this指针 4. this指针是指向当前原创 2015-01-23 18:30:43 · 563 阅读 · 0 评论 -
C++ 成员变量是别的类的对象
•在成员函数中,可以将this指针当参数传递,也可以返回this指针,或返回通过this指针拿到的对象/* 成员变量是别的类的对象 */#include using namespace std;//日期类class Date { int year,month,day;public: //构造方法 Date(){ cout <<原创 2015-01-23 18:36:56 · 3268 阅读 · 1 评论 -
C++的析构函数
1• 与类名同,但名称前有一个波浪号~2• 一个类只有一个析构3• 析构没有参数,没有返回值4• 在一个对象释放前调用。释放可能是主动的,也可能是被动的。5• 一个对象的析构函数只调用一次,但语法上允许多次调用6• 默认析构函数 何时需要自定义析构呢?//// main.cpp// 析构函数//// Created by 06原创 2015-01-24 17:01:09 · 583 阅读 · 0 评论 -
C++中const对象和const成员函数
1• 成员函数可以声明成const函数(声明后加const)2• 对于const对象,只能调用const成员函数3• Const函数和非const函数可以形成重载4• 对于非const对象的函数调用优先选择非const成员函数5• 对于类中的mutable数据成员,可以被const成员函数修改//// main.cpp// Const//原创 2015-01-24 16:29:26 · 940 阅读 · 0 评论 -
C++何时需要自定义析构函数呢?
对象销毁时 如果我们自己没有写析构方法,编译器会帮我们写一个然后调用。那么问题来了,既然我不写,编译器会帮我写,那我干嘛要写???有木有什么情况必须我自己写的????处理内存的时候,也就是把之前retain的对象都release一次#include using namespace std;//日期类class Date{ int year,mont原创 2015-01-24 17:51:42 · 9545 阅读 · 2 评论 -
C++值传递和引用传递.地址传递
//// main.cpp// Basic//// Created by 06 on 15/1/9.// Copyright (c) 2015年 黄永锐. All rights reserved.//#include using namespace std;//引用传递void fa(int &r){ r++; //shuchu dizi原创 2015-01-10 09:48:18 · 1015 阅读 · 0 评论 -
C++中的函数重载
一. 函数的参数表严格匹配,空参代表没有任何参数,void形参依然可以使用二. 不再支持C语言中的隐式声明方式,函数调用前必需先声明或定义三. 函数的返回类型int不能省略四. 函数可以重载 1. 在同一作用域中,函数名相同,参数列表不同的函数可以存在若干个,其返回值任意 2. 当出现重载函数时,使用函数指针显得有点问题,当给函数指针赋值时,指针的类型代表着具体原创 2015-01-11 16:02:01 · 762 阅读 · 0 评论 -
C++的初步了解内存
一• new/delete int* p2 = new int;//不保证是零 int* p3 = new int(100); int* p4 = new int[5]; delete p2; delete p3; delete[] p4;二• 定位分配 char buf[100原创 2015-01-12 15:52:56 · 450 阅读 · 0 评论 -
C++中的结构体
•C++的结构中可以有函数,称为成员函数结构中的变量叫做成员变量。#include using namespace std;//C++中,结构体就是类。struct Date { int year; //成员变量 实例变量 int month; int day; void show(){ cout << y原创 2015-01-10 16:00:03 · 880 阅读 · 0 评论 -
C++中的联合
联合中所有变量 共享同一块内存地址//联合union MyUnion { int x; int y; char cs[4];};•C++的匿名联合union{int x;char c[4];};x = 100;#include using namespace std;#pragm原创 2015-01-10 16:08:48 · 528 阅读 · 0 评论 -
C++用const 保护 引用参数的传递
尽量使用引用传递参数 尽量使用引用代替指针#include using namespace std;//void fa(int& r){ r++; cout << r << endl;}//这个方法里 永远都不会改变r 所以这样的情况就要用到const来修饰void fb(const int& r){ // r++;//这样就不支持了原创 2015-01-10 09:58:24 · 737 阅读 · 0 评论 -
C++成员函数指针与其应用场景
//成员函数指针#include using namespace std;//全局函数void test (){ cout << "this is test" << endl;}void test2 (int a){ cout << "this is test22222" << endl;}//结构体struct Date{ int year;原创 2015-01-10 15:26:02 · 885 阅读 · 0 评论 -
C++中枚举的简单使用
•C++的枚举不再是普通的整数类型,而是一种独立的类型,这个体现了C++强类型的特征// 枚举#include using namespace std;////英雄的状态enum HeroState { Stand, Move, Attack, Die};//匿名枚举enum { INDEX, INDEX2原创 2015-01-10 16:13:02 · 2015 阅读 · 0 评论 -
C++枚举的使用 C99与C11的枚举
#include using namespace std;//结构体 按钮struct UIButton{ int tag; void touch(){ cout << "tag值为 " << tag << " 的Button被点击了" << endl; }};//枚举 按钮的状态enum ButtonType{ UP原创 2015-01-10 16:15:16 · 1479 阅读 · 0 评论 -
C++中的运算符转换
1. C++中的运算符,可以用其他关键字转换x>0 && y>0 可以写成x>0 and y>02. 下图为可以转换的列表原创 2015-01-10 17:00:08 · 487 阅读 · 0 评论 -
C++中提供的类型转换方式
C++中提供了以下几种类型转换运算符•static_cast()–转换时做静态检查,即在编译时进行–void*到其他指针的转换•reinterprect_cast()–允许强转任何类型的指针–把整数强转成指针,指针强转成整数•const_cast()–去掉cv限制•dynamic_case() –动态转换原创 2015-01-10 09:35:49 · 551 阅读 · 0 评论 -
C++ 引用类型作为函数的形参 (不用第三个数交换两个数)
不用第三个数交换两个数#pragma 引用类型作为函数的形参#include using namespace std;//函数声明void swap1(int &x,int &y);void swap2(int &x,int &y);void swap3(int* x,int* y);//主函数int main(){ // int a = 5原创 2015-01-10 09:46:22 · 2406 阅读 · 0 评论 -
C++引用作为返回值
#pragma 引用作为返回值#include using namespace std;//返回值类型是引用 相当于创建一个匿名的临时变量int& fa(int& r){ r++; return r;}int& fb();//函数声明//主函数int main (){ int x = 100; // fa(x); // cout <原创 2015-01-10 09:55:40 · 1077 阅读 · 0 评论 -
C++成员指针
1.成员指针是一种相对地址2.结构体中或者类中的成员(变量或者函数)的相对地址的获取方式 &结构类型名::成员3.声明成员指针变量 成员类型 结构类型名::*指针变量名4.通过成员指针访问结构成员 结构变量*指针变量名//我们要声明 指针 指向成员变量,成员变量的地址会一样么?成员变量的地址是由结构体对象决定的原创 2015-01-10 11:10:00 · 586 阅读 · 0 评论 -
C++第一个程序-include使用尖括号和双引号的场景
注意哦 输入输出 C++中的include C++里面自己的内容的时候使用 不加.h 如果include我们自己写的类的时候 ,使用双引号 "" 加.h//// main.cpp// HYR_hello//// Created by 06 on 15/1/8.// Copyright (c) 2015年 黄永锐. All rights rese原创 2015-01-10 15:44:44 · 767 阅读 · 0 评论 -
C++命名空间
一. 命名空间也称名字空间,即namespace 1.名字空间是一种描述逻辑分组的机制,如果一些声明按照某种准则在逻辑上属于同一集团,就可以将它们放入同一个名字空间,以表明这个事实。 2.防止命名冲突也是一个很重要的原因。一个人写的程序放到一个名字空间中也是一种可取的做法。二.使用某个名字空间下的对象或函数:原创 2015-01-10 15:52:05 · 1418 阅读 · 0 评论 -
C++的布尔类型bool
1.c99的bool是一种宏定义,而在c++中则是专门的一种数据类型bool2.bool的值一般为true(逻辑真)和false(逻辑假)3.和c一样,bool值本质上也是整数,true等于1,false等于0 isLeap = true; int days = 28 + isLeap;//2月份的天数4.另外,可以将任何值赋值给bool类型的变原创 2015-01-10 16:55:00 · 1266 阅读 · 0 评论 -
C++的参数默认值和哑元
一. 函数的参数支持哑元 哑元是一种没有参数名的参数,主要是为了函数间的区别以及向前兼容二. 函数的参数可以指定默认值,当调用时没有传参,就以默认值进行函数调用。三. 有默认值的形参必须靠右,声明和定义分开时,默认值必需在声明中指定,定义中不再指定。//默认参数 与 哑元#include using namespace std;/*原创 2015-01-12 13:50:17 · 2491 阅读 · 0 评论 -
C++中的内联函数
一• 宏在C++中不提倡使用1. 宏存在着一些潜在的危险2. C++中的面向对象不允许预处理器访问类的成员数据。也意味着宏函数不能用作类的成员函数。二• 内联函数保持了函数的所有特点,但在需要的地方会像宏一样展开,不需要调用函数的开销。三• 类中直接定义的函数自动被处理成内联函数,所以一般把内联函数放在头文件中。四• inline是一种请求,实现方式取决于编译器,特别是当函原创 2015-01-12 13:54:16 · 501 阅读 · 0 评论 -
C++中的简单内存管理---初步认识
OC里面给变量赋值有2种方法第一种是直接用下划线的,也就是实例变量:_button= 第二种是使用属性:self.button = ....这两种有何区别???以下项目是创建了一个C++项目 简单模拟创建对象和给变量赋值的情况首先创建了一个NSObject类,在OC里面继承NSObject类的都有retain release autorelease。。。。等方法来管原创 2015-01-24 14:11:40 · 677 阅读 · 0 评论