首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++015-C++函数

在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。 1.2定义函数 我们来编写一个求阶乘的程序。...1.4函数的形参列表 函数的形参列表可以为空,但是不能省略。...函数的返回类型不能是数组类型或函数类型,但可以是指向数组或者函数的指针 1.6局部变量、全局变量与静态变量 局部变量只可以在函数内部使用,全局变量可以在所有函数内使用。...3; cout<<a<<b<<endl; swap(a,b); cout<<a<<b<<endl; return 0; } 3.2有返回值的函数 只要函数的返回类型不是...cin>>a>>b; cout<<max(a,b)<<endl; return 0; } . 4.函数递归 在一个函数内部,也可以调用函数本身。

14220

适合具备 C 语言基础的 C++ 入门教程(十二)

异常的引入 为什么要引入异常这个机制呢,假设有如下一个调用关系: A ----> B ----> C 那如果说是,C函数中出现了一个问题,那要将这个问题找到,就需要在 C函数里返回一个值,然后根据这个值一级一级地向上处理...随A 基于上述这样一个机制,我们来简单地编写一个异常处理代码: void C() { throw 1; } void B() { C(); } void A() { try { B..." << endl;} }; 紧接着,我们来编写各个函数的代码: void C(int i) { int a = 1; double b= 1.2; float c = 1.3; if (i...(); else if (i == 5) throw MySubException(); } 我们看到,在上述中,我们只声明了抛出异常的类型只有int和double,那么也就是说不能够再去抛出其他类型的异常了...,欢迎关注的个人公众号:wenzi嵌入式软件 [公众号名片.jpg]

32800
您找到你想要的搜索结果了吗?
是的
没有找到

适合具备 C 语言基础的 C++ 教程(十二)

异常的引入 为什么要引入异常这个机制呢,假设有如下一个调用关系: A ----> B ----> C 那如果说是,C函数中出现了一个问题,那要将这个问题找到,就需要在 C函数里返回一个值,然后根据这个值一级一级地向上处理...随A 基于上述这样一个机制,我们来简单地编写一个异常处理代码: void C() { throw 1; } void B() { C(); } void A() { try...other exception "<<endl; } } 我们会根据传入到 B()中的参数,依次抛出不同类型的异常,然后去设置不同的捕获方式,在编写捕获代码的时候,涉及到其他的这个选项,可以用..." << endl;} }; 紧接着,我们来编写各个函数的代码: void C(int i) { int a = 1; double b= 1.2; float c = 1.3...; else if (i == 5) throw MySubException(); } 我们看到,在上述中,我们只声明了抛出异常的类型只有int和double,那么也就是说不能够再去抛出其他类型的异常了

36210

C++ 自增、自减运算符的重载和性能分析

— 1 — 重载的形式 自增运算符和自减运算符是有「前置」和「后置」之分的,如: a++ // 后置自增运算符 ++a // 前置自增运算符 b-- // 后置自减运算符 --b // 前置自减运算符...那么问题来了: 为什么「前置」运算符返回的是引用 & ? 为什么「后置」运算符返回的是普通的对象(临时对象)? 主要是因为为了保持原本 C++ 前置和后置运算符的特性。...后置运算符的特性 而后置运算符,是不能作为左值的,也就是 (a++) = 5; 是不成立的,所以后置运算符的重载函数的返回值就是普通的对象。...---- — 3 — 重载函数的编写 在自己的定义的类,实现对象自增、自减功能,如下具体的使用: int main() { CDemo d(10); cout << d++ << ","...假设要实现如上的 main 函数输出的结果,该如何编写呢?

1K20

c++11&14-智能指针专题

但像java等其他一些语言则不会有这样的问题,为什么呢,因为它们有很好的处理内存的方法,比如java的垃圾回收机制,现在,我们c++终于也有了智能指针。 1....; } 运行结果: TestA() TestB() 可以看到,上面代码中,我们创建了一个TestA和一个TestB的对象,但在整个main函数都运行完后,都没看到两个对象被析构,这是为什么呢?...这等效于说: ptr_a对ptr_b说,哎,说ptr_b现在的条件是,你先释放才能释放你,这是天生的,造物者决定的,改不了; ptr_b也对ptr_a说,的条件也是一样,你先释放才能释放你...= std::make_shared(); ptr_a->ReferTestB(ptr_b); ptr_b->ReferTestB(ptr_a); std::cout...只能有一个引用,不能赋值或者拷贝,但可以移动赋值和移动拷贝,std::weak_ptr实际上是对std::shared_ptr的补充,它并不能对对象进行具体的操作。

61240
领券