重拾C++ 编程基础

C中的宏一般仅仅是一些常量的定义,可以对应于c++中的枚举。


C语言中printf执行格式化输出,%m.pf执行至少m位保留p为小数的float输出,默认为右对齐的,当在m前添加-后执行左对齐,
由于至少m位的的设定,不会造成值的丢失。只省略p对.的省略情况会造成不同的结果。
scanf具有将不能识别的字符放回原处的特点,对不能识别的字符认为是输入终止的信号。对空白字符的处理也是一样的,连续的空白字符
作为分隔条件会被忽略。


C语言中赋值表达式是有值的,返回所赋的右值。(可用括号进行查看)。


C++中的友元概念是用来突破类的私有保护机制的。默认访问权限为private(友元除外)
即使需要使用默认构造函数,但默认构造函数的声明还是需要给出的,一般这是一个重要的习惯,其原因在于,只有当没有定义任何
构造函数时,C++才会自动提供默认构造函数,给出一个非默认构造函数而用默认方式初始化实例会出错,这种行为应当被避免。
,故 c++ 11 "=default" 可以省去一些工作量。


有关类方法的修饰并不是仅能使用一次(public private ........)
当函数后面加const的形式仅适用于类的成员函数,用于指出该函数不能对类的成员变量进行修改,对"独立"函数是不适用的。
(其余const的意义可猜测)


关键字unsigned(不作为修饰而是一种类型)是为了跨平台考虑。


有3种设定内联函数的方法,(1)类内对函数进行直接定义而非声明,(2)类内给出函数声明但加关键字inline,
(3)类内只给出函数声明,但在类外函数定义前加关键字inline。
这并不限于类的成员函数,对非成员函数,可于(类外)函数定义前添加关键字inline。


一般函数返回值与返回引用的区别在于性能(拷贝与否)。


C++在重载io流的方法时,要返回此io流。


引用与指针的一点不同时,引用在给出时必须初始化,而指针可以不初始化。
引用就是别名,一旦给定,对其的操作就会影响施加引用的对象。
引用一般初始化是对变量进行的,对常量可以考虑const引用。
指针虽然可以未经初始化来使用,但是应该避免(使用nullptr)。
指向指针的指针的初始化方式仍然是对一个引用符号添加双层指针。(仅仅一层)


extern关键字可以使其它文件使用本文件定义的一个变量,以避免重复定义。同时可以仅仅在声明时使用extern,之后在其它文件中直接使用。


const作为修饰符规定对所修饰对象操作的限制,但并不限制修饰对象必须为const类型。
所以这意味着可以对普通变量施加const引用,这时仍可以对原变量进行修改,但这仅仅使对此const引用进行使用是有意义的。
这仅仅是限制了如自增运算这些改变指针本身的运算。
上面的两个const即是所谓顶层const与底层const 如const int const* pN 左边的是底层const(指定被指向的对象) 
右边是顶层const(指定指针本身)


指针在初始化是却需要严格地与其类型相一致。
指针的const可以限定为固定的地址,即int * const Num 这时所指向的值仍是可变的。


C++中常量表达式,不仅仅涉及到数据类型,而且与编译有关,是在编译期就可以确定的值。


类型别名:
有两种定义类型别名的方法,typedef 及 using("=" C++11新引用的方法)。
可以使用类型别名对基本类型及不带指针及引用的类型进行指定,对于其它类型容易对类型造成混淆。


auto:由于函数的强类型性,导致即使对于模板函数也无法突破此性质。
可以放心地使用此函数,但需要知道的是其原理是通过初始值来推断类型。
auto有时会忽略掉顶层const (const int N = 100; auto NN = N;)此时需要换成const auto。但需要注意的是这对非auto情况也是适用的。
auto的一大作用是对模板函数中的临时变量的类型进行给出:
如下例:
template
void Multiply(_Tx x, _Ty y)
{
    auto v = x*y;
    std::cout << v;
}



当*被执行类的操作符重载时尤为方便。


decltype:用一个表达式的类型初始化一个变量的类型(多应用于一个函数与跟其无关的变量间)但并不能用于初始化函数的参数及返回值
的类型。另外decltype也可以直接作用于初始化的的对象(如内置对象实体)等,可以做到与auto等价。


基本完成了基础部分。
2018/07/20 周五 12:53 354 01求平均年龄.cpp 2018/07/20 周五 12:53 327 02财务管理.cpp 2018/07/20 周五 12:53 357 03均值.cpp 2018/07/20 周五 12:53 375 04求整数的和与平均值.cpp 2018/07/20 周五 12:54 375 05最高的分数.cpp 2018/07/20 周五 12:54 371 06整数序列的元素最大跨度值.cpp 2018/07/20 周五 12:55 430 07奥运奖牌计数.cpp 2018/07/20 周五 12:55 281 08多边形内角和.cpp 2018/07/20 周五 12:55 237 09奇数求和.cpp 2018/07/20 周五 12:56 239 10满足条件的数累加.cpp 2018/07/20 周五 12:56 403 11整数的个数.cpp 2018/07/20 周五 12:56 257 12与指定数字相同的数个数.cpp 2018/07/20 周五 12:56 217 13乘方计算.cpp 2018/07/20 周五 12:57 324 14人口增长问题.cpp 2018/07/20 周五 12:57 307 15银行利息.cpp 2018/07/20 周五 12:57 433 16买房子.cpp 2018/07/20 周五 12:57 260 17斐波那契数列.cpp 2018/07/20 周五 12:58 461 18鸡尾酒疗法.cpp 2018/07/20 周五 12:58 392 19救援.cpp 2018/07/20 周五 12:58 280 20球弹跳高度的计算.cpp 2018/07/20 周五 12:58 450 21角谷猜想.cpp 2018/07/20 周五 12:59 520 22津津的储蓄计划.cpp 2018/07/20 周五 12:59 400 23药房管理.cpp 2018/07/20 周五 12:59 642 24正常血压.cpp 2018/07/20 周五 13:00 453 25求特殊自然数.cpp 2018/07/20 周五 13:00 387 26统计满足条件的4位数个数.cpp 2018/07/20 周五 13:00 244 27级数求和.cpp 2018/07/20 周五 13:00 296 28分离整数的各个数位.cpp 2018/07/20 周五 13:01 443 29数字反转.cpp 2018/07/20 周五 13:01 341 30含k个3的数.cpp 2018/06/10 周日 14:07 545 31开关灯.cpp 2018/07/20 周五 13:01 360 32求分数序列和.cpp 2018/07/20 周五 13:01 324 33计算分数加减表达式的值.cpp 2018/07/20 周五 13:02 220 34求阶乘和.cpp 2018/07/20 周五 13:02 304 35求出e的值.cpp 2018/07/20 周五 13:02 302 36计算多项式的值.cpp 2018/07/20 周五 13:03 378 37雇佣兵.cpp 2018/07/20 周五 13:03 540 38计算多项式导函数.cpp 2018/07/20 周五 13:03 377 39与7无关的数.cpp 2018/07/20 周五 13:03 331 40数1的个数.cpp 2018/07/20 周五 13:04 485 41数字统计.cpp 2018/07/20 周五 13:04 704 42画矩形.cpp 2018/07/20 周五 13:04 341 43质因数分解.cpp 2018/07/20 周五 13:04 531 44第n小的质数.cpp 2018/07/20 周五 13:05 341 45金币.cpp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值