【ThinkingInC++】43、内建类型封装在一个类里

内建类型

C++数据类型包括:

1)内置的基本数据类型,如整型、浮点型、布尔型等,均有一个关键字对应,如int,float,bool

2)C++ STL(标准库)引入了一些扩展类型,有时候也归为基本类型,比如字符串类型(string),复数类型(complex),向量(vector)等。

3)其他,即用户自定义类型,也叫抽象数据类型(ADT),即用户通过class,struct,enum定义的各种数据类型。

/**
* 书本:【ThinkingInC++】
* 功能:把一个内建类型封装在一个类里以保证用构造函数初始化
* 时间:2014年9月9日16:09:58
* 作者:cutter_point
*/

#include<iostream>

using namespace std;

class Integer
{
    int i;
public:
    Integer(int ii=0);  //这样比较好,看main函数中的代码
    void print();
};

Integer::Integer(int ii):i(ii) {}
void Integer::print() {cout<<i<<"\t";}

int main()
{
    //数组元素全部自动初始化成0,和for循环和memset()相比,这种初始化不必付出更多
    //的开销
    Integer i[100];

    for(int j=0 ; j < 100 ; ++j)
    {
        cout<<j+1<<":";
        i[j].print();
    }

    return 0;
}
时间: 2024-10-24 23:05:35

【ThinkingInC++】43、内建类型封装在一个类里的相关文章

【ThinkingInC++】37、更安全的union可以封装在一个类中

/** * 书本:[ThinkingInC++] * 功能:更安全的union可以封装在一个类中 * 时间:2014年9月6日14:53:04 * 作者:cutter_point */ #include<iostream> using namespace std; class SuperVar { //enum没有类型名(他是一个没有加标记的枚举),如果想立即定义enum的实例时, //这种做法是可取的 enum {character, integer, floating_point}vart

python高级编程之(类级):子类内建类型

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #类级 #在2.2中,提出了类型(type0与类(class)统一(请访问:https://www.python.org/download/releases/2.2.3/descintro(可能已经不存在了))-这使内建类型的子类化成为可能,并且添加一个新内建类型object #用于所有内建类的公共祖先 #展示一个名为distinctdict类的代码,与平常的dic

零基础学python-4.2 其它内建类型

这一章节我们来聊聊其它内建类型 1.类型type 在python2.2的时候,type是通过字符串实现的,再后来才把类型和类统一 我们再次使用上一章节的图片来说明一些问题 我们通过对照上面的图片.在python3.4的时候,type有了一些改变,从2.7的返回<type 'xxx'>到3.4的返回<class 'xxx'>.除了返回一个类之外,还把提示给改了.使用class.这样更加清晰,明白 2.Null(None) 3.文件(在其它章节介绍) 4.集合(在其它章节介绍) 5.函

python基础(文件输入/输出 内建类型 字典操作使用方法)

本文主要介绍了python基础入门,包括文件输入/输出.内建类型.字典操作等使用方法 一.变量和表达式 代码如下: >>> 1 + 1 2>>> print 'hello world' hello world>>> x = 1               >>> y = 2>>> x + y3 Python是强类型语言,无法根据上下文自动解析转换成合适的类型. Python是一种动态语言,在程序运行过程中,同一个变量

dart之旅(二)- 内建类型

像大多数语言一样,dart也提供了number,string,boolean等类型,包括以下几种: numbers strings booleans lists (also known as arrays) maps runes (for expressing Unicode characters in a string) symbols 这几种内建类型的特点之一是你可以使用字面量来创建一个相应的对象.你也可以使用构造函数来初始化这些对象,除了number和boolean,因为这两个类型没有对应

[golang note] 内建类型

基础类型 √ golang内建基础类型有布尔类型.整数类型.浮点类型.复数类型.字符串类型.字符类型和错误类型. 复合类型 √ golang支持的复合类型有指针.数组.数组切片.字典.通道.结构体和接口.

内建类型零初始化的问题

比如有如下这样一段代码,我们很快就能意识到,x 和ptr开始的值都是未定义的,但是sc却很明显会调用其默认构造函数,得到合理的初始化. class someclass{ public: someclass():val(){} private: int val; } void foo(){ int x; int *ptr; someclass sc; ...... } 在C++中,处理基础类型(int, bool, float, double, 指针类型等)跟处理类类型还是有一定差别的.基础类型并

[python学习篇][书籍学习][python standrad library][内建类型]之数值

数值类型 - int, float, long, complex 有四种不同的数值类型:普通整数.长整数.浮点数和复数 普通整数(或者简称整数)使用C中的long实现,其精度至少为32位(sys.maxint始终设置为当前平台最大的普通整数值,最小值是-sys.maxint - 1).长整数具有无限的精度.浮点数字通常使用C中的double实现:有关你的程序所运行的机器上的浮点数精度及其内部表示形式的信息在sys.float_info中可以获得.复数有实部和虚部,各是一个浮点数.若要从复数z中提

[python学习篇][书籍学习][python standrad library][内建类型]迭代器类型

我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list.tuple.dict.set.str等:一类是generator,包括生成器和带yield的generator function.这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 可以使用isinstance()判断一个对象是否是Iterable对象: >>> from collections import Iterable >>> isinstance([