zoukankan      html  css  js  c++  java
  • c++笔记1

    using namespace std:命名空间可以保证一些命名能够在全局不冲突。如用户可以通过声明命名空间,然后用运算符::区别同名的不同变量
    using namespace std;
    namespace first
    {
       int a;
       int b;
    }
    namespace second
    {
       double a;
       double b;
    }
    int main ()
    {
       first::a = 2;
       second::a = 6.453;
    cout<<
    first::a + second::a <<endl;}
    /**/不能嵌套但可以/*/ * *  /*/可以让中间的*与/不直接相连。
    标准输入输出:进行打印cout<<和键盘输入cin>>
    新的控制语句:相当于switch()中可以有不同的表达式,case也更加灵活。
    try
    {
      if(表达式1)throw case1;
    if(表达式2)throw case2;
      throw case3;
    }
    catch (int result)//接收throw的结果
    { cout << "Result is: " << result << endl;
    b = result + 1;
    }
    模板类函数:忽略数据类型,都会进行相同的操作,比如求最小,无论整形还是浮点型:
    template <class ttype>
    ttype minimum (ttype a, ttype b)
    {
    ttype r;

    r = a;
    if (b < a) r = b;

    return r;
    }
    结构体中除了数据外还可以有函数,被称为方法。
    类的实现方法可以包含在类中,也可以在类的外面实现(用类名::函数名进行引用),通常头文件和代码分离的都是通过这种方法实现的。同时可以将模块.cpp单独编译成模块.o文件,只需将.o文件交给其他人进行链接编译就起到了代码保护。
    operate= :重载操作符主要用于对实例对象间的运算。
    static:如何用static修饰类中变量,则所有实例将共享该变量(相互影响),这是数据共享的一种方法

    类:是一种数据结构,类对象是一个变量(用点操作符.),类指针一般用动态分配实现(对类成员用指针操作->),常规的一些运算操作如果要用在类上面,需要进行操作符重载的操作(比大小、赋值、相等等操作)。类的成员函数默认是内联函数(当然也可以显示声明)

    1 变量初始化:局部变量都不会初始化;静态和全局都为0

    2 常量:用Const对#define 进行扩展:必须初始化& 运行中不能改变。const修饰函数的参数:不希望参数在被调用过程中改变。

    2.1指向常量的指针(*指针不分开,内容不能更改,但指针可变 指针+-1):类型 const *指针=地址;

    2.2常量指针(const 在*和指针中间,指针不可更改(不能在指向其他地址),但指针内容可变 *(指针 +1)=x):类型  *const指针=地址

    3变量:

    3.1基本类型初始化新方法:int i(1)相当于int i =1

    3.2变量在使用前定义即可不必非在文件头部,但同样你也不能在循环体外再调用在循环体内才定义的变

       for (int i = 0; i < 4; i++)
       {
          cout << i << endl;
       }
       cout << i << endl;           // Bad practice!

    3.3全局和局部变量同名:在局部变量的作用域全局被隐藏,但可使用::访问隐藏的同名全局变量。以下例子中a在{}内外指代的是不同对象

     cin >> a;
    
       {
    int a = 1;
    a = a * 10 + 4;
    cout << "Local number: " << a << endl;
    } cout << "You typed: " << a << endl;

    3.4指针:void无类型指针可与其它任何进行转换,空指针=NULL(0);必须先给指针赋值才能运算。

    3.5引用(变量别名,实质是常量指针拷贝初始化):类型 &引用标识符=被引用标识符(前提被引用标识符要先初始化);在被调用函数的形参用引用:避免大数据类型的拷贝开销,并且能改变实参,这个和指针作用相同,但指针可以不指向任何对象和指向不同对象。,注意:不能引用void类型变量、数组、不能对空指针引用,也不能进行引用的引用。

    3.6 动态分配:new 类型[n]可以创建数组,其中类型可以是自定义或者class,不用强制类型转换,delet 指针,但若以数组形式分配,释放时delete [] 指针名

    。if(!(指针=new 类型))//分配出错。

    四函数:

    4.1函数的重载:执行的功能相同或者相近,因参数不同执行有差异

    4.1 函数的参数:不定参数;缺省参数(有缺省的必须在右侧不能交叉);引用作为参数和返回值(实参用变量,形参用引用)实质上是地址传递但不用进行取地址操作,比指针更方便直接,凡是形参用指针的地方都可以用引用代替。引用作为返回值从而可以让函数可以作为表达式左值进行增量计算,但要注意的是,此时函数的返回值变量必须是全局或者静态的(因函数调用结束作为局部变量就会消失),要么就是增加参数(引用方式)

    4.1内联函数:解决小函数的调用开销提高效率,同事避免带参数宏在自加自减操作时的错误。应用注意:必须在当前文件用调用,适合1~5行操作,不能用在递归函数中,先定义好后使用,不用使用循环和开关语句。

    4.4构造函数和析构函数:构造函数和类同名,不能有返回值,但可以有多个(函数重载通过参数个数、类型、返回值来区分,在编译的时刻绝对调用哪个重载函数,缺省构造函数不需要任何参数),主要是创建实例时做的初始化的工作;析构函数是释放资源。

  • 相关阅读:
    安装mysql时 Write configuration file 错误
    Statement和PreparedStatement之间的区别
    Matlab 的fspecial函数用法
    MySql 5.1 在线中文参考手册
    Rational License Key Error 的解决办法
    Admin5论坛营销插件
    actcms发布模块,如何使用?
    博客大巴(BlogBus)
    淘宝评论采集,因为是原创
    忍者X3又添新成员 IIS6批量建站
  • 原文地址:https://www.cnblogs.com/jieruishu/p/9436325.html
Copyright © 2011-2022 走看看