zoukankan      html  css  js  c++  java
  • C++ —— 类的基础

    C++类的设计与基础       2015.9.11

    1、变量和常量的命名:确定程序中的变量、常量、函数的名字都是具有描述性的名字,具有直接的意义。如numberOfStudent 比 numOfStuds好。

    2、类名:当自定义一个类时,应该将类名中的每一个单词的首字母大写。例如Circle、Rectangle等都是好的类名。C++库中的类名都是小写形式。这样易于区分这两种不同的类。对象的命名可参照变量。

    3、Circle circle1() 是错误的。正确如下:

      Circle circle1;

      Circle cirlce2(3);

    4、circle1 = Circle(); //这句 使用无参构造函数创建一个对象,然后浅复制给circle1.    

    5、匿名对象:对象只使用一次可以用匿名对象,如 circle().getArea 、circle(3).getArea.

    6、C++库中的 string 类常用方法:【深入学习string:http://www.cnblogs.com/aduck/articles/2246168.html

    +string()  
    +string(value:string)  
    +string(value:char[])  
    +string(ch:char, n:int)  
    
    +append(s:string)  
    +append(s:string, index:int, n:int):string  
    +append(s[]:char, n:int):string  
    +append(n:int, ch:char):string
    
    +assign(s[]:char):string  
    +assign(s:string, index:int, n:int):string    
    +assign(s:string, n:int):string  
    +assign(n:int ,ch:char):string
    
    +at(index:int):char    
    +length():int    
    +size():int    
    +capacity():int    
    
    +clear():void    
    +erase(index:int, n:int):string
    +empty():bool      
    +data():char*    
    +c_str():char[]  
    
    +copy(s[]:char, n:int, index:int):void  //【将当前字符串从index起复制到s】
    
    +compare(s:string):int  
    +compare(index:int, n:int, s:string):int
    
    +substr(index:int, n:int):string
    +substr(index:int):string
    
    +find(ch:char):int     
    +find(ch:char, index:int):int      
    +find(s:string, index:int):int      
    +find(s:string):int
    
    +replace(index:int, n:int, s:string):string  
    +swap(s:string):void  //【交换当前字符串和s的内容】
    
    +insert(index:int, s:string):string        
    +insert(index:int, n:int, ch:char):string
    string 类的成员函数

    7、对象数组的创建:

    Circle circleArray[10];  //无参构造
    Circle circleArray[10] = {Cirlce(3),Cirlce(5),Cirlce(4)}; // 前三个直接用有参构造,后七个用无参构造
    在函数栈中分配对象数组

    函数传递时:void printCircleArray(Circle circleArray[] , int size);

    //分配对象数组内存:1
    Circle* arr1 = new Circle[3];
    
    delete[] arr1;
    
    //分配对象数组内存:2
    Circle* arr2[3];
      for(int i = 0; i < 3; i++)
        arr2[i] = new Circle(i+3);
    
    for(i = 0; i < 3; i++)
        delete arr2[i];
    在堆中分配对象数组

    8、构造函数初始化列表:

      ClassName(parameterList)

      : dataField1(value1),dataField2(value2)

      {//Additional statement is needed}

      当类的某个为对象成员所属类只有一个有参构造函数,编译时会因为找不到defaut构造函数而出错,此时必须使用构造函数初始化列表。

    9、

  • 相关阅读:
    不注意的小问题
    Hibernate、Spring和Struts工作原理及使用理由
    正则表达式贪婪与非贪婪模式
    Springmvc构造RESTful详细讲解
    正则表达式贪婪与非贪婪模式1
    BOJ二叉排序树的后序遍历
    qsort()应用大全
    辗转相除法求最大公约数(C语言)
    九度题目1014:排名 (结构体多级排序)
    BOJ第三题:二叉树前序遍历
  • 原文地址:https://www.cnblogs.com/BensonLaur/p/5234551.html
Copyright © 2011-2022 走看看