c++学习笔记1(待续)

C++学习笔记:
1.const int a=1;定义常变量,定义和赋值同时。只读变量-储存单元值不变。const修饰对象时,该对象只能调用该类里的const成员函数。常成员函数可以访问常对象的数据成员,但是不能够修改。如果非要修改,加mutable.
2.c++所有运算会float数据按double数据处理
3.标准输入输出控制符:page54,加头文件#include<iomanip>
4.String类(头文件#include<string>):string string1="china";(赋值)
string1=string2(strcpy(string1,string2);)
可直接加减乘除,
5.指针:
int main()          //改变指针指向的地址                        
{
  int *p1,*p2,*p,a,b;                                
  cin>>a>>b;
  p1=&a;
  p2=&b;
  if(a<b)
  {
     p=p1;
     p1=p2;
     p2=p;

  }
  cout<<"a="<<a<<"b="<<b<<endl;
  cout<<"max="<<*p1<<"min="<<*p2<<endl;
  return 0;
}

int main()                   //改变指针指向地址的值,均能改变实参
{
  void swap(int*p1,int *P2)
  int *k1,*k2;
  cin>>a>>b;
  k1=&a;
  k2=&b;
  if(a<b)swap(k1,k2)
  cout<<"max="<<a<<"min="<<b;
return 0
}
void swap(int*p1,int*p2)
{
   int temp;
  temp=*p1;
   *p1=*p2;
   *p2=temp; 
}
6.指向函数的指针:int max(int x,int y)
int(*p)(int ,int),第一个int指向函数类型,p是指向函数指针,最后是形参类型
调用:p=max;传函数头地址
     m=p(a,b);
7.inline内置函数:编译时将所调用函数的代码直接嵌入主调函数中(调用函数时间空间开销大),不包括复杂的循环,switch语句(函数规模小),类成员函数体内隐藏式inline函数,函数体在外的不是
8.函数重载:同一个函数名,但是参数个数,参数类型,或参数顺序中至少有一个不同,返回值可以相同也可不同
9.函数模板:标准格式为:template<class numtype>  声明一个虚拟类型名为numtype(数据类型).
                  template<typename T1,classT2>

class Compare{

                   T a,b;
                   T max(T a,T b,T c)
                             {
                                  if(a>b)b=a
                                  if(c>b)b=c
                                       }

}

定义对象的时候如果想用int替换T,则Compare <int> c1(4,7);

10.默认参数的函数:float area(int a,int b,int c=10)   默认参数必须放在最右边,一个函数不能既有重载又有默认参数,否则会出现歧义
                          area(8,9);
11.  auto:函数中的局部变量
     static:静态局部变量,程序运行期间都不释放,对象里的static成员为类所有,只占一份存储空间。静态成员函数没有this指针,即静态成员函数不能访问非静态成员。
     register:寄存器变量,将局部变量的值放在cpu中,存取速度快。
     extern:外部变量,一边在有多个cpp文件时,一个cpp定义了int a,在另一个文件中声明extern int a;扩展作用域
    static int a;在其他文件不能引用
12.根据一个函数能否被其他文件中的函数调用,分为内部函数和外部函数;static int fun(int);//内部函数,又叫静态函数
                                                           extern int fun(int);//外部函数
13.strcat(str1,str2);//将str2联接到str1
    strcpy(str1,str2,n);//将str2中的前n个字符复制到str1中。
    strcmp(str1,str3);//1>2,返回正整数,否则负整数,相等返回0
strlen(str);字符串长度,不包括\0
14.指针数组和指向指针的指针:int *a[4];//[]优先级高,每一个数组元素为一个指针
                           int (*a)[3];//指向一维数组的指针变量
                指针型指针:    a[2]是一个指针,a+2是指向a[2]的指针;
                   char **p; p是指向字符指针数据
                  const int *a;//指向const int 数据的指针;指向可变,*p不能变
                常指针:int*const a;//指向不能变
                常量指针:const int *const p;//都不能变
15.引用:int &b=a;//b是a的别名
16.Linklist p;
p=(Linklist)malloc(sizeof(Lnode));//free撤销
studenet *p;
p=new student;//delete p;
17.枚举:enum love{
     she,he,it   
}love;

18.友元:分为友元函数和友元类。

友元函数:既可以是外部函数,也可以是其他类的成员函数。友元函数可以访问本类中的私有成员。friend void Time::display();

友元类:在A的结构体内将B声明为友元类,friend B;这样B中的所有函数都可以访问A中的所有成员。友元类是单向的(注意),而且不能传递。

19.运算符重载: 函数类型 operator 运算符名称(形参)如用加号来计算复数相加,Complex为复数类

Complex operator +(Complex &x1,Complex&x2);但是重载不能改变运算符参数个数(双目运算符不能变单目),不能改变优先级和结合性,必须和自定义对象一起使用。

20.多态:分为静态多态和动态多态。静态多态是通过函数重载和运算符重载。动态多态是通过虚函数实现的。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值