C++入门系统学习

本文详细介绍了C++编程的基础知识,包括如何撰写C++程序、对象的定义与初始化、表达式、条件语句和循环语句。重点讨论了Array和Vector的使用,以及指针带来的灵活性。同时,讲解了文件的读写操作,让读者了解C++如何处理输入输出。文章还简要提及了面向过程编程风格的关键概念,如函数编写、参数传递、函数指针和文件头文件的设定。
摘要由CSDN通过智能技术生成

C++编程基础(Basic Programming)

(本章主要内容:内置的数据类型、语言预定义的运算符operator、标准库中的vector和string、条件语句和循环语句、输入和输出用的iostream库;vector和string是两个类,建议多用其取代语言内置的数组array和C-style字符串)

1.如何撰写c++程序

int main()
{
   
	//程序内容	
}

int为关键字,即程序语言预定义的有特殊意义的名称。

函数是一块独立的程序代码序列,执行一些序列。包含四部分:返回值类型,函数名,参数列表,函数体。

main函数返回整型,告诉调用者程序是否执行成功,正常时返回0;main不是程序语言定义的关键字,执行C++程序的编译系统会假设程序定义有main函数,否则程序无法执行。

数据的输入与输出,并非为C++程序语言定义本身定义的一部分,而是由C++的一套面向对象的类层次体系classes hierarchy提供支持,并作为C++标准库standard library的一员;面向对象的类层次体系定义了整个家族的各相关类型,例如终端与文件输入设备、输出设备等。

类,是用户自定义的数据类型;让我们得以将数据类型加入我们的程序中,并有能力识别它们;class机制赋予我们“增加程序内中类型抽象化层次”的能力,而不是简单的对基础数据类型思考;class的定义为两部分,分别写在不同地方,其中之一“头文件header file”,声明class所提供的各种操作行为,另一个为程序代码文件program text,包含了这些操作行为的实现内容;欲使用class,必须先在程序中包含其头文件。

基础数据类型:布尔值Boolean、字符character、整数integer、浮点数floating point。

C++标准的“输入/输出库”名为iostream,其中包含了相关的整套class,用以支持对终端和文件的输入与输出。

#include <iostream>

cout为已定义好的对象,将信息写到用户终端;output运算符(<<)可以将数据定向到cout。

cout << "Please enter your first name: ";

这行为C++所谓的语句statement,是C++程序最小独立单元。

读取用户输入内容,读取之前我们必须预先定义一个对象,用以储存数据。欲定义一个对象,必须指定其数据类型,再给定其标识符。若要储存某人的名字,int数据类型几乎不可能,更适当的数据类型是标准库中的string class。

#include <iostream>
#include <string>

string user_name;
cin >> user_name;

可以用换行字符常量‘\n’写至cout来换行;字符常量character literal系由一组单引号括住;字符常量分为两类,一类是可打印字符,另一类是不可打印字符。

在应用程序中定义了新的class时,也应该为每一个class提供它们自己的output运算符。这样可以让那些class的用户得以像面对内置类型一样地以相同方式输出对象内容。

using namespace std;

using和namespace都是C++中的关键字。std 是标准库所建的命名空间的名称。标准库所提供的任何事物(例如string class以及cout、cin这两个iostream类对象)都被封装在命名空间std内;命名空间是一种将库名称封装起来的方法。可以避免和应用程序发生命名冲突的问题。命名冲突是在应用程序内两个不同的实体entity具有相同名称,导致程序无法区分两者。命名冲突发生时,程序必须等到该命名冲突获得解析resolve之后,才得以继续执行。命名空间像是在众多名称的可见范围之间竖起的一道道围墙。若要在程序中使用string class以及cin、cout这两个iostream类对象,不仅需要包含头文件,还得让命名空间std内的名称曝光。上述代码即为最简单方法。

2.对象的定义与初始化

初始化

int num_tries = 0;
int num_tries(0);

第二种为构造函数语法,有两种初始化方法。第一种assignment运算符(=)进行初始化,这种方法沿袭自C语言,如果对象属于内置类型,或者对象可以单一加以初始化。第二种方法适用于对象需要多个初值,以标准库中的复数类为例,需要两个初值,于是引入了用来处理“多值初始化”的构造函数初始化语法constructor initialization syntax。

#include <complex>
complex<double> purei(0,7);

出现与complex之后的尖括号,表示complex是一个template class(模板类)。 template class允许我们在“不必指明data member类型”的情况下定义class;template class机制使程序员得以直到使用template class时才决定真正的数据类型。可以先插入一个代名,稍后才绑定至实际的数据类型。上述是将complex类的成员绑定至double类型。

输出中若包含转义字符,用‘//n’即可。

bool go_for_it = true;

若对象在执行过程中不应该有所变动,const关键字可以排上用场。如果企图为const对象指定新值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值