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[]; //无参构造
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++ —— 类的基础的更多相关文章
- TypeScript完全解读(26课时)_7.ES6精讲 - 类Class基础
ES6精讲 - 类Class基础 es5中创建构造函数和实例 原来在es5中的写法 定义好Point后,在原型对象上定义getPostion的方法 实例自身是没有这个方法的,我们调用的时候会去创建他的 ...
- 图解Python 【第五篇】:面向对象-类-初级基础篇
由于类的内容比较多,分为类-初级基础篇和类-进阶篇 类的内容总览图: 本节主要讲基础和面向对象的特性 本节内容一览图: 前言总结介绍: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 ...
- 同步类的基础AbstractQueuedSynchronizer(AQS)
同步类的基础AbstractQueuedSynchronizer(AQS) 我们之前介绍了很多同步类,比如ReentrantLock,Semaphore, CountDownLatch, Reentr ...
- 看懂类图——UML类图基础
类图 要学懂设计模式,就需要先看得懂类图,类与类之间的关系是学习设计模式的基础,而在软件工程中,类与类之间的关系是通过UML中的类图来体现. 这篇笔记包含的不会是类图的所有东西,包含的只是各个类之间的 ...
- 设计模式-UML类图基础
设计模式之序-UML类图那点事儿 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书 ...
- 开发工具、Object类(java基础知识十一)
1.常见开发工具介绍 * A:操作系统自带的记事本软件 * B:高级记事本软件 * C:集成开发环境 IDE * (Integrated Development Environment) * ...
- 构造方法,重载,static,math类(java基础知识七)
1.构造方法概述和格式 * A:构造方法概述和作用 * 给对象的数据(属性)进行初始化 * B:构造方法格式特点 * a:方法名与类名相同(大小也要与类名一致) * b:没有返 ...
- (转)看懂类图——UML类图基础
类图 要学懂设计模式,就需要先看得懂类图,类与类之间的关系是学习设计模式的基础,而在软件工程中,类与类之间的关系是通过UML中的类图来体现. 这篇笔记包含的不会是类图的所有东西,包含的只是各个类之间的 ...
- UML类图基础说明
UML类图主要由类和关系组成. 类: 什么具有相同特征的对象的抽象, 具体我也记不住, 反正有官方定义 关系: 指各个类之间的关系 类图 类就使用一个方框来表示, 把方框分成几层, 来表示不同的信息, ...
随机推荐
- springmvc学习笔记(理论)
1.springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层 进行职责解耦,基 ...
- Dedecms当前位置{dede:field name='position'/}修改
这个实在list_article.htm模板出现的,而这个模板通过loadtemplage等等一系列操作是调用的include 下的arc.archives.class.php $this->F ...
- 七.生成n位随机字符串
--1.借助newid() go --创建视图(因为在函数中无法直接使用newid()) create view vnewid as select newid() N'MacoId'; go --创建 ...
- js删除数组指定的某个元素
1.给js数组对象原型加indexof方法 获得元素索引 Array.prototype.indexOf = function(val) { for (var i = 0; i < this.l ...
- PHP json的插入和解析在数据库中的操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. PHP中往数据库中存储json数据在项目开发中也经常遇到,下面我就 ...
- 【转】C++之内部类(嵌套类)与外部类及友元
[转]http://baike.baidu.com/link?url=Md223wQoT5s-3cZ5xRnj1pGmvm310DKAuh-HDrcEdc2l24rwobHrdEc_Mi4Z3BGP0 ...
- hdu 1042 N!(大数的阶乘)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- 最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson
根据DSqiu的blog整理出来 :http://dsqiu.iteye.com/blog/1689163 PS:模板是自己写的,如有错误欢迎指出~ 本文内容框架: §1 Dijkstra算法 §2 ...
- Navicat 选择语句
1.进入数据库后,点击Query 2.点击new query 3.左边提供界面的筛选条件,如果不清楚sql语句,可直接在上面操作 4.右边可自己编写sql语句 5.写完语句后,点击Run,在resul ...
- socket (转,吴秦,http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html)
Linux Socket编程(不限Linux)2010-12-12 21:58 by 吴秦 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web ...