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[];  //无参构造
Circle circleArray[] = {Cirlce(),Cirlce(),Cirlce()}; // 前三个直接用有参构造,后七个用无参构造

在函数栈中分配对象数组

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

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

在堆中分配对象数组

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

  ClassName(parameterList)

  : dataField1(value1),dataField2(value2)

  {//Additional statement is needed}

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

9、

C++ —— 类的基础的更多相关文章

  1. TypeScript完全解读(26课时)_7.ES6精讲 - 类Class基础

    ES6精讲 - 类Class基础 es5中创建构造函数和实例 原来在es5中的写法 定义好Point后,在原型对象上定义getPostion的方法 实例自身是没有这个方法的,我们调用的时候会去创建他的 ...

  2. 图解Python 【第五篇】:面向对象-类-初级基础篇

    由于类的内容比较多,分为类-初级基础篇和类-进阶篇 类的内容总览图: 本节主要讲基础和面向对象的特性 本节内容一览图: 前言总结介绍: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 ...

  3. 同步类的基础AbstractQueuedSynchronizer(AQS)

    同步类的基础AbstractQueuedSynchronizer(AQS) 我们之前介绍了很多同步类,比如ReentrantLock,Semaphore, CountDownLatch, Reentr ...

  4. 看懂类图——UML类图基础

    类图 要学懂设计模式,就需要先看得懂类图,类与类之间的关系是学习设计模式的基础,而在软件工程中,类与类之间的关系是通过UML中的类图来体现. 这篇笔记包含的不会是类图的所有东西,包含的只是各个类之间的 ...

  5. 设计模式-UML类图基础

    设计模式之序-UML类图那点事儿 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书 ...

  6. 开发工具、Object类(java基础知识十一)

    1.常见开发工具介绍 * A:操作系统自带的记事本软件 * B:高级记事本软件 * C:集成开发环境 IDE     * (Integrated Development Environment) *  ...

  7. 构造方法,重载,static,math类(java基础知识七)

    1.构造方法概述和格式 * A:构造方法概述和作用     * 给对象的数据(属性)进行初始化 * B:构造方法格式特点     * a:方法名与类名相同(大小也要与类名一致)     * b:没有返 ...

  8. (转)看懂类图——UML类图基础

    类图 要学懂设计模式,就需要先看得懂类图,类与类之间的关系是学习设计模式的基础,而在软件工程中,类与类之间的关系是通过UML中的类图来体现. 这篇笔记包含的不会是类图的所有东西,包含的只是各个类之间的 ...

  9. UML类图基础说明

    UML类图主要由类和关系组成. 类: 什么具有相同特征的对象的抽象, 具体我也记不住, 反正有官方定义 关系: 指各个类之间的关系 类图 类就使用一个方框来表示, 把方框分成几层, 来表示不同的信息, ...

随机推荐

  1. 各种开发语言示例调用WebService接口

    ASP示例: <% uid="账号"pwd="密码"tos="13900041123"msg="你们好"url = ...

  2. iOS开发知识点:理解assign,copy,retain变strong

    一..h和.m文件的变化说明 1.对于.h头文件,主要是将属性定义由retain变为strong @property (retain, nonatomic) 变为 @property (strong, ...

  3. iOS 中的传值方式

    一. 属性传值   将A页面所拥有的信息通过属性传递到B页面使用 很常用的传值,也很方便,但是要拿到类的属性.例如: B页面定义了一个naviTitle属性,在A页面中直接通过属性赋值将A页面中的值传 ...

  4. ANSI escape code

    最近在做iOS上的SSH终端项目,主要是在手机上远程连接Unix系统,并进行一些简单的指令操作,类似于SecureCRT:今天想总结一下这个项目中遇到的新东西----ANSI escape code. ...

  5. [LeetCode OJ] Max Points on a Line—Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.

    //定义二维平面上的点struct Point { int x; int y; Point(, ):x(a),y(b){} }; bool operator==(const Point& le ...

  6. QQ情侣头像~

                       

  7. IE layout详解

    引言: Internet Explorer 中有很多奇怪的渲染问题可以给他一个”layout”得到解决,John Gallant 和 Holly Bergevin把他归类为“dimensional b ...

  8. JQuery执行函数与window.onload函数

    JavaScript和HTML之间的交互: 1.通过用户和浏览器操作页面时引发的事件来处理的. 2.当文档或者它的某些元素发生某些变化时,浏览器会自动生成一个事件. 例如:当浏览器装载完一个文档后,会 ...

  9. Unix中$$、$@、$#、$*的意思

    $$: 表示当前命令进程的PID $#: 表示参数的个数 $@ 和 $* : 都表示输出所有的参数 区别: $*:表示合并为一个参数  “$1 $2 $3 $n” $@:表示分解为多个参数 “$1” ...

  10. Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备

    这是一个正在研发的API或技术的概要文件,苹果公司提供这些信息主要是为了帮助你通过苹果产品使用这些技术或者编程接口而做好计划,该信息有可能会在未来发生改变,本文当中提到的软件应该以最终发布的操作系统测 ...