Xcode创建C++项目

1、新建一个MAC工程(command line tool)

2、导入头文件

3、修改文件后缀(*.m——>*.mm)

4、修改主函数中的OC代码为C++的代码

 

动态内存分配

#import <Foundation/Foundation.h>;
#import <iostream>;
using namespace std;
int main(int argc,const char *argv[]){
int *p=new int(4);//分配内存
*p=7;
printf("%d",p);
delete p ;//释放内存
}
上面例子说明:内存存在堆中,需要释放,如果在栈中,不需要释放,栈:后进先出,函数结束后,动态出栈
 
*delete 运算符 作用:释放用new创建的动态存储单元
使用格式:
delete 指针名; //释放指针所指内存单元
delete [] 指针名; //释放数组内存单元
例如:
int *pi=new int(5);
delete pi;
 
 

内联函数 inline

*C++语言提供了内联函数来减少函数调用的开销

在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代码

何时使用内联函数:

  • 当一个简单的函数频繁调用时使用内联函数
  • 不适合使用内联函数
    • 1.复杂的分支与循环
    • 2.递归调用
    • 3.内联函数只适合于只有1-5行的小函数

函数默认参数

*C++函数的形参可以指定默认值

*默认值要在函数声明中指定,定义时不必再指定

*必须从右到左指定参数的默认值

#import <Foundation/Foundation.h>;
#import<iostream>;
using namespace std; //函数声明时给默认值
int maxValue(int a,int b=7);//有默认值
int maxValue(int a=5,int b=7);//a,b都有默认值
int maxValue(int a=5,int b);//a有默认值,错误写法,从右向左依次默认值
//函数定义时,不要有默认值
int maxValue(int a,int b){
return a>b?a:b;
} int main(int argc,const char *argv[]){
int x=3 ,y=5;
//int max=maxValue(x,y); //console:5
int max=maxValue(x); //console;7
int max=maxValue(100); //console;100
printf("max = %d",max);
return 0;
}

函数重载

在OC中叫复写,在C++中要重载

什么是函数重载

                    对于一个函数名重新赋予它新的含义,使一个函数名可以定义多个函数。

重载规则

            重载函数至少在参数个数,参数类型右参数顺序上有所不同。

#import <Foundation/Foundation.h>;
#import<iostream>;
using namespace std; //函数声明时给默认值
int maxValue(int a,int b=7);//有默认值
int maxValue(int a=5,int b=7);//a,b都有默认值
int maxValue(int a=5,int b);//a有默认值,错误写法,从右向左依次默认值
//函数定义时,不要有默认值
int maxValue(int a,int b){
return a>b?a:b;
}
float maxValue(float a,float b );
float maxValue(float a,float b ){ return a>b?a:b;
} int main(int argc,const char *argv[]){
float x=3.1 ,y=5.1;
float max=maxValue(x,y); //调用float类型的函数
float max=maxValue(3,5); //调用int类型的函数
printf("max = %d",max);
return 0;
}

二一性

不能明确指定调用的函数 。(编译出错)

C++基础笔记(二)C++对C的扩展的更多相关文章

  1. JavaScript基础笔记二

    一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...

  2. Shell脚本编程基础笔记二

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8177697.html 一:输入 1:运行时参数 可以在启动脚本时,在其后输入参数. ./脚本 参数1 参数2. ...

  3. Python基础笔记(二)

    1. List和Tuple List和Tuple是Python的内置的数据类型,区别在于可变和不可变,List用[]表示,Tuple用()表示,它们之间可以相互转换: # List to Tuple ...

  4. Vue学习计划基础笔记(二) - 模板语法,计算属性,侦听器

    模板语法.计算属性和侦听器 目标: 1.熟练使用vue的模板语法 2.理解计算属性与侦听器的用法以及应用场景 1. 模板语法 <div id="app"> <!- ...

  5. jquery基础 笔记二

    动态创建元素 关于使用HTML DOM创建元素本文不做详细介绍, 下面举一个简单的例子: //使用Dom标准创建元素 var select = document.createElement(" ...

  6. UWP入门(二) -- 基础笔记

    原文:UWP入门(二) -- 基础笔记 不错的UWP入门视频,1092417123,欢迎交流 UWP-04 - What i XMAL? XAML - XML Syntax(语法) ,create i ...

  7. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  8. MYSQL基础笔记(二)-SQL基本操作

    SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create da ...

  9. Python 学习笔记二

    笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...

  10. php代码审计基础笔记

    出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...

随机推荐

  1. C++ Const(常类型)的作用总结

    C++ Const的作用总结 面试或者工作中,我们经常遇到const修饰符定义的变量,函数和对象等.那么const的作用具体是什么,有哪些.今天自己好好的总结了一下,记录下来方便自己以后时间久了不记得 ...

  2. JS中检测数据类型的四种方法

    1.typeof 用来检测数据类型的运算符->typeof value->返回值首先是一个字符串,其次里面包含了对应的数据类型,例如:"number"."st ...

  3. javascript --- 只继承于原型

    正如上次所述,,出于效率考虑,我们应该尽可能的将一些可重用的属性和方法添加到原型中去. 如果养成了这个好习惯,我们仅仅依靠原型就能顺利的完成继承关系的构建了. 毕竟采用new her()方法将her的 ...

  4. 使用checkbox实现纯CSS下拉框

    在这个例子中,我们会看到一个纯CSS制作的下拉框.主要是要用到了HTML元素的checkbox 和CSS3选择器,并没有用到JavaScript.例子如下: Click to Expand Link ...

  5. 转:C# 使用NLog记录日志

    原文:http://www.cnblogs.com/felixnet/p/5498759.html NLog是一个记录日志组件,和log4net一样被广泛使用,它可以将日志保存到文本文件.CSV.控制 ...

  6. 微信html5开发选哪一个

        html5选哪个开发框架       ①. Justep起步 X5框架 : 专门用来开发web App的大型开发工具集,x5 v3.0有765.58M,不选. ②.Jquery Mobile ...

  7. Redis介绍及常用命令

    一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...

  8. c++ const用法小结

    const用法 1,定义全局变量的内存分配问题 #define  Pi_1  3.14       //使用#define宏 const double Pi_2 = 3.14    //使用const ...

  9. 一些C语言学习的国外资源

    下面的列表是在网上收集整理的C语言资料,包括PDF等多种格式 A Tutorial on Pointers and Arrays in C Beej's Guide to C Programming ...

  10. CocoaPods的使用

    一.安装Cocoapods步骤:(在终端安装) 1.在安装前,需确保已经安装了Ruby环境 mac 下安装Ruby环境步骤: (1).安装RVM $ curl -L https://get.rvm.i ...