C++是一门古老的语言,C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。看得懂看,看不懂跳过
我会尽量讲的简单一些
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
中文名:C++语言
外文名:The C++ Programming Language/c plus plus
类 别:计算机程序设计语言
创始人:Bjarne Stroustrup
创始公司:贝尔实验室
基本内容:类、封装、重载、继承、模版
世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。
编写程序需要工具,代码需要有不同的颜色,叫代码高亮,大体有两种工具——文本编辑器和IDE,文本编辑器就是只提供代码高亮,工具较少,所以下载大小比较小。通常有Notepad++、EMACS、Vim、sublime Text2和Xcode等。但是IDE的功能就全面了,对于开发人员来说,IDE对于开发的帮助是巨大的。
Visual Studio (Visual C++)
C++ Builder
kDevelop
Anjuta
Code::Blocks——开放源码的全功能的跨平台C/C++集成开发环境 。
Visual Mingw
Ideone
Eclipse CDT
Compilr
Code Lite
Netbeans C++
上面就是一个个IDE,我最常用的是Visual Studio。
编译器是为了让计算机读懂代码的工具,必须下载。
Dev C++
Ultimate++
Digital Mars
C-Free
MinGW
Tiny C Compiler
C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
《C++程序设计教程》,钱能
《易学C++》,潘嘉杰
《大话设计模式》,程杰
《C++编程规范:101条规则、准则与最佳实践》,刘基诚
《C和C++程序员面试秘籍》,董山海
《C++程序设计语言》英文第四版,Bjarne Stroustrup
《C++ Primer 第5版(英文版)》,Stanley Lippman、Josee Laoie、Barbara Moo
《C++标准库:自学教程与参考手册(第2版)(英文版)》,Nicolai Josuttis
《C++ Concurrency in Action|C++ 并发实战》,Anthony Wiliams
《C和C++安全编码(第2版)(英文版)》,Robert Seacord
#include
using namespace std;
int main(){
return 0;
}
上面的程序是一个标准的c++程序,什么都不干。
第一句:#include
是一个预处理语句,在#include
后面可以调用c++标准库,基础的c++程序定义一个iostream
是标准输入输出流,第二行using namespace std;
可以先不用管,只要记住就行。后面的int main()
是定义一个函数,int
是返回值类型,main()
是函数名,以后将自定义函数的时候会仔细讲,main()
是主函数,不可以改名!后面的{}一对大括号括起来的地方就是你写代码的地方了。return 0;
是代表程序结束的地方,叫返回值,返回值的默认值是0,不可以改!
我们弄明白了标准构建就可以写带有功能的代码了,这种代码叫做源代码。任何语言的第一步都是输出“hello world”,C++也一样,让我们开始吧?!
写代码前先得有一个IDE或者文本编辑器
新手我建议使用Dev-Cpp,因为Dev-Cpp有自带编译器,不用下载编译器了,
#include
using namespace std;
int main() {
cout << "hello world" << endl;
return 0;
}
把这段代码写下来
编译是什么?是把你写出的代码转化成电脑可以读懂的代码。首先会转成汇编,再转成机器码,计算机就明白了。
怎么编译?(用Dev-Cpp)
这是你的代码对不对?
然后按上图的灰色片可以新建源代码,黄色的是保存,保存你的代码到你想保存的位置,往右看看到一个四格格的图标,是编译,点击会弹出一个框,如下图,等它停下来就编译完成,点击编译左边的另一个灰色片片,点击就运行了,如果想简单点,直接点击运行右边的编译运行,就一体化了。
运行后弹出一个黑色的框,输出“hello world”,成功!
这个代码只有一个新的地方cout << “hello world" << endl;
,我们分析一下,cout是什么意思?cout是输出到控制台(终端),<<
是输出流符号,""
这是代表字符串,输出一个hello world的字符串,最后endl是回车的意思,输出换行,最后分号;每行都要有;
尽管C和C++已经很相似了,不过还是有略微差别……
c++的输入与输出相对简单,但是有些功能会缺失,所以c++中也支持C语言的输入与输出
实例:
#include
using namespace std;
int main(){
int aNum;
cin >> aNum;
cout << "aNum:" << aNum << endl;
return 0;
}
程序第一行的#include
大家都还记得吧?这个iostream就是为了cin和cout,当然还有其他功能,都是相对高级,所以这里不说,第4行定义了一个整形变量aNum,下面有讲解变量,第5行cin是输入标识符,>>是输入流符号,cout是输出标识符,<<是输出流符号。简单吧
C风格的相对难些,不过应该可以看懂,C风格的输入输出补全了C++的一些(cout,cin)小问题。
实例(C语言):看得懂看,看不懂跳过
int aNum;
scanf("%d", &aNum);
printf("%d\n", aNum);
结果:
输入:
5
输出:
5
应该可以看出来,scanf是输入,printf是输出,“”双引号内是确定输出格式的语句,,
后面就是输出中切入的变量参数。看不懂可以跳过,参考:菜鸟教程<-想学的话猛戳
C++中可以有变量
全局变量顾名思义,整个文件可用,通常用来声明常量,定义位置:命名空间(using namespace std;
)下面,具体方法见下面实例:
#include
using namespace std;
int n = 10;
void out(){
cout << n << endl; //自定义函数,下面讲
//函数中可用
}
int main(){
cout << n << endl;//every where可用
return 0;
}
懂了吧
有是顾名思义
#include
using namespace std;
void func(){
cout << n << endl;//报错,找不到n
}
int main(){
int n = 10;
cout << n << endl;
}
还是顾名思义,常量就是不能改变的量,用保留字const
定义,实例:
#include
using namespace std;
const int an = 100;
int main(){
//常量可以定义在任何地方
cout << an << endl;//输出100
const long long int aln = 200;
cout << aln << endl;//输出200
aln = 100;//报错,不可篡改常量
return 0;
}
程序中适当的注释可以美化程序,使得程序更加清晰,简单明了,C++同样支持注释,下面来介绍一下,C++的注释一共有两种:单行注释和多行注释,单行注释用//
双斜杠表示,多行注释用一对单斜杠+星号/**/
实现,编译器会自动跳过注释,不编译注释,注释是给人看的。
实例:
#include
//
using namespace std;//命名空间——单行注释
int main(){
/*
programer:thomas
date:2020****
"hello world"
*/
return 0;
}
C++关键字 | ||||
---|---|---|---|---|
asm | do | if | return | typedef |
auto | double | inline | short | typeid |
bool | dynamic_cast | int | signed | typename |
break | else | long | sizeof | union |
case | enum | mutable | static | unsigned |
catch | explicit | namespace | static_cast | using |
char | export | new | struct | virtual |
class | extern | operator | switch | void |
const | false | private | template | volatile |
const_cast | float | protected | this | wchar_t |
continue | for | public | throw | while |
default | friend | register | true | |
delete | goto | reinterpret_cast | try |
上表格是C++的所有关键字、保留字
关键字不可作为变量名、函数名等等,它们是固定的。
先不着急讲,以后再说,有些我都不知道。
C++含有很多的数据结构
C++的数字类型有整形和浮点型两种,先知道这两种。
整形,顾名思义是存储整数的类型,用整形声明的变量可以存储整数,来看一个实例:
#include
using namespace std;
int main(){
short aNum_short;
int aNum_int;
long long aNum_long;
cin >> aNum_short;
cin >> aNum_int;
cin >> aNum_long;
cout << aNum_short << " " << aNum_int << " " << aNum_long << endl;
return 0;
}
运行结果
输入:
5 6 7
输出:
5 6 7
解析:
用int类型定义了一个变量aNum
,输入aNum为5,输出aNum为5,很简单对不?:happy:
难的以后再说。
整形还有两个类型,一个short int和long int,和unsigned都是顾名思义,短整形和长整形。
名称 | 所占字节数 | 取值范围 |
---|---|---|
short[int] | 2 | -32768~32767 |
unsigned short[int] | 2 | 0~65535 |
int | 4 | -2147483648~2147483647 |
unsigned int | 4 | 0~4294967295 |
long long | 8 | -263~263-1 |
unsigned long long | 8 | 0~264-1 |
如果数据比较小,就用short,正常数据还是用纯int,要是用比较大的数据,用long long int,能存储的范围大,unsigned是无符号的意思,就是无﹣
号,unsigned long long的数据值可以翻倍!你们自己可以试试264是多少,unsigned用法详见https://blog.csdn.net/cool99781/article/details/104505559。
浮点形,顾名思义是存储带小数点(小数)的类型,用浮点型声明的变量可以存储整数,浮点型有几个定义方法:float单精度浮点数,double双精度浮点数,long double高精度浮点数。
精度 | 名称 | 所占字节数 | 取值范围 |
---|---|---|---|
单精度浮点数 | float | 4 | − 3.4 E + 38 3.4 E + 38 ( 7 位 有 效 数 字 ) -3.4E+38~3.4E+38(7位有效数字) −3.4E+38 3.4E+38(7位有效数字) |
双精度浮点数 | double | 8 | − 1.79 E + 308 1.79 E 308 ( 15 位 有 效 数 字 ) -1.79E+308~1.79E308(15位有效数字) −1.79E+308 1.79E308(15位有效数字) |
高精度浮点数 | long double | 12 | 3.4 E − 4932 1.1 E + 4932 ( 19 位 有 效 数 字 ) 3.4E-4932~1.1E+4932(19位有效数字) 3.4E−4932 1.1E+4932(19位有效数字) |
实例:
#include
using namespace std;
int main(){
float f_float;
double f_double;
long double f_longD;
cin >> f_float >> f_double >> f_longD;
cout << f_float << " " << f_double << " " << f_longD << endl;
return 0;
}
输入:1 2.5 3.0
输出:1 2.5 3.0
布尔类型从某种意义上来说,也是一种整形,可以转化为整形,不过这个整形很小,只能有0和1,就像二进制一样,0是false,1是true,布尔类型的关键字是bool
,实例如下
bool flag = true;//赋值初始值
cout << int(flag) << endl; //强制类型转换变成int,输出1
flag = false;
cout << int(flag) << endl; //输出0
字符类型只能存储一个字符,用单引号 ‘ ’ 括起来,c++中的字符类型只支持ASCLL编码,不懂ASCLL编码的朋友可以百度一下,我就不唠叨了,要不然写不完了。关键字是char
char ch = 'A';
cout << ch << endl;//输出A、
cout << int(ch) << endl;//输出A的ASCLL码,65
为下面的程序挑错
#include
using namespace;
int hello(){
int a
cin << a;
cout << "a = " << a << endl;
double f;
cin << f;
char c = 'f';
cout << c" " << endl;
return 'a';
}
Document 提问
错误多了
C++ 运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:
本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。
下表显示了 C++ 支持的算术运算符。
假设变量 A 的值为 10,变量 B 的值为 20,则:
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个操作数相加 | A + B 将得到 30 |
- | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
* | 把两个操作数相乘 | A * B 将得到 200 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 取模运算符,整除后的余数 | B % A 将得到 0 |
++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
– | 自减运算符,整数值减少 1 | A-- 将得到 9 |
请看下面的实例,了解 C++ 中可用的算术运算符。
复制并粘贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。
#include
using namespace std;
int main() {
int a = 21;
int b = 10;
int c;
c = a + b;
cout << "Line 1 - c 的值是 " << c << endl ;
c = a - b;
cout << "Line 2 - c 的值是 " << c << endl ;
c = a * b;
cout << "Line 3 - c 的值是 " << c << endl ;
c = a / b; cout << "Line 4 - c 的值是 " << c << endl ;
c = a % b; cout << "Line 5 - c 的值是 " << c << endl ;
int d = 10; // 测试自增、自减 c = d++; cout << "Line 6 - c 的值是 " << c << endl;
d = 10; // 重新赋值 c = d--; cout << "Line 7 - c 的值是 " << c << endl ;
return 0;
}
当上面的代码被编译和执行时,它会产生以下结果:
Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 10
Line 7 - c 的值是 10
下表显示了 C++ 支持的关系运算符。
假设变量 A 的值为 10,变量 B 的值为 20,则:
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 不为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (A > B) 不为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (A < B) 为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (A >= B) 不为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (A <= B) 为真。 |
请看下面的实例,了解 C++ 中可用的关系运算符。
复制并黏贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。
#include
using namespace std;
int main() {
int a = 21;
int b = 10;
int c ;
if( a == b ) {
cout << "Line 1 - a 等于 b" << endl ;
} else {
cout << "Line 1 - a 不等于 b" << endl ;
}
if ( a < b ) {
cout << "Line 2 - a 小于 b" << endl ;
} else {
cout << "Line 2 - a 不小于 b" << endl ;
}
if ( a > b ) {
cout << "Line 3 - a 大于 b" << endl ;
} else {
cout << "Line 3 - a 不大于 b" << endl ;
} /* 改变 a 和 b 的值 */
a = 5; b = 20;
if ( a <= b ) {
cout << "Line 4 - a 小于或等于 b" << endl ;
}
if ( b >= a ) {
cout << "Line 5 - b 大于或等于 a" << endl ;
}
return 0;
}
当上面的代码被编译和执行时,它会产生以下结果:
Line 1 - a 不等于 b
Line 2 - a 不小于 b
Line 3 - a 大于 b
Line 4 - a 小于或等于 b
Line 5 - b 大于或等于 a
下表显示了 C++ 支持的关系逻辑运算符。
假设变量 A 的值为 1,变量 B 的值为 0,则:
运算符 | 描述 | 实例 |
---|---|---|
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (A && B) 为假。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (A || B) 为真。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | !(A && B) 为真。 |
请看下面的实例,了解 C++ 中可用的逻辑运算符。
复制并黏贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。
#include
using namespace std;
int main()
{
int a = 5;
int b = 20;
int c ;
if ( a && b ) {
cout << "Line 1 - 条件为真"<< endl ;
}
if ( a || b ) {
cout << "Line 2 - 条件为真"<< endl ;
} /* 改变 a 和 b 的值 */
a = 0; b = 10;
if ( a && b ) {
cout << "Line 3 - 条件为真"<< endl ;
} else {
cout << "Line 4 - 条件不为真"<< endl ;
}
if ( !(a && b) )
{
cout << "Line 5 - 条件为真"<< endl ;
}
return 0;
}
当上面的代码被编译和执行时,它会产生以下结果:
Line 1 - 条件为真
Line 2 - 条件为真
Line 4 - 条件不为真
Line 5 - 条件为真
C++ 数组
C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、…、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、…、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName [ arraySize ];
这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C++ 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:
double balance[10];
现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。
在 C++ 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。
如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
您将创建一个数组,它与前一个实例中所创建的数组是完全相同的。下面是一个为数组中某个元素赋值的实例:
balance[4] = 50.0;
上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。以下是上面所讨论的数组的的图形表示:
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:
double salary = balance[9];
上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面的实例使用了上述的三个概念,即,声明数组、数组赋值、访问数组:
#include
using namespace std;
#include
using std::setw;
int main () {
int n[ 10 ]; // n 是一个包含 10 个整数的数组 // 初始化数组元素
for ( int i = 0; i < 10; i++ ) {
n[ i ] = i + 100; // 设置元素 i 为 i + 100
} cout << "Element" << setw( 13 ) << "Value" << endl; // 输出数组中每个元素的值
for ( int j = 0; j < 10; j++ ) {
cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
}
return 0;
}
上面的程序使用了 setw() 函数来格式化输出。当上面的代码被编译和执行时,它会产生下列结果:
Element Value
0 100
1 101
2 102
3 103
4 104
5 105
6 106
7 107
8 108
9 109
需要用到C++的STL库,自己查查吧,参考https://www.runoob.com/cplusplus/cpp-strings.html
字符串用string定义,还要预处理一个库#include
#include
#include
using namespace std;
int main(){
string str;
cin >> str;
cout << str[0] << endl;
cout << str[2] << endl;
cout << str << endl;
return 0;
}
StdIn:
HelloWorld
StdOut:
H
l
HelloWorld
字符串可以用[]访问下标,仔细研究上网查
基础训环网站https://www.runoob.com/cplusplus/cpp-loops.html
基础判断网站https://www.runoob.com/cplusplus/cpp-decision.html
太基础了,而且太长,写不动了
函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
C++ 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
C++ 中的函数定义的一般形式如下:
return_type function_name( parameter list ) { body of the function }
在 C++ 中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
更多https://www.runoob.com/cplusplus/cpp-functions.html
自己查,哈哈!
https://www.runoob.com/cplusplus/cpp-namespaces.html
问题1:学习C++大约需要多久?有些书籍上说几十天就能学会C++这是真的吗?
回答:在高校中安排的C++课程约为半年至一年左右,但事实上要精通C++,这点时间是远远不够的。C++并不只是一门简单的计算机语言,而是逐渐形成了一个学科体系。要熟练运用C++,做出界面美观、功能强大的程序,还必须对数据结构、STL、设计模式等各个专题进行深入学习。因此,学习C++所需时间取决于学习者本身的基础和期望达到的学习效果。如果一位零基础的初学者要掌握C++语言本身的所有特性,1~2年的时间是比较正常的。至于说几十天能够学会C++,对于已经精通其他计算机语言的学习者来说也是可能的。
问题2:学习C++需要什么样的数学和英语水平?学历较低可以学C++么?
回答:学习程序设计必然会用到数学和英语。至少输入的代码基本都是英文字母,我们要用的算法多少和数学、逻辑学有些关系。因此,彻底没有数学和英语基础就学习程序设计真的很困难。一般认为,有初中或以上的数学和英语基础就可以学习程序设计了。在现实中,很多中学生已经成为了编程高手。如果已经忘记以前所学的数学和英语知识,建议略花一些时间去回顾一下。数学和英语对学习程序设计还是有莫大的裨益。数学能够锻炼一个人的逻辑思维能力,使接受算法的速度更快;英语则有助于学习者看懂计算机的反馈信息、阅读更多原版的技术资料。
问题3:以前学习过程序设计,时间长都忘记了,现在不从事计算机行业。随着年龄增加,学习能力和记忆力都可能有所减弱,这样能学习C++么?
回答:学习能力和记忆力的确会随年龄受到影响。但是学习C++本来就是一个周期相对较长的过程,最重要的是保持学习的热情和耐心。C++语言的基础部分已经基本固定,不会经常发生重大变化,因此即使年龄稍大,经过努力后掌握C++是完全可能的。
问题4:很多网友说学习C++之前要学C语言,是这样吗?
回答:C语言的部分语法的确与C++相似甚至相同。如果有C语言的基础学习C++肯定会更快。但是,这并不意味着学习C++之前必须要学C语言,而且对于初学者来说在短时间内接触这两种语言反而会造成部分概念的混淆。因此,如果你的目标是C++而不是C语言,那么不必特意在学习C++之前先去学C语言。
问题5:现在学习C++主要有哪些集成开发环境?哪个最适合初学者?
回答:首先需要说明的是,集成开发环境和编译器又不是一回事情。通常集成开发环境可以搭配一种或多种编译器。编译器的功能是将C++源程序转变成可执行的程序,而集成开发环境则是一系列代码编辑、调试和管理工具。目前Windows操作系统下使用比较广泛的集成开发环境有微软的Visual Studio(包括6.0版、2010版和2012版等)、Dev-C++、Eclipse、Code::Blocks等。从集成开发环境的界面友好程度来看,微软的Visual Studio有着不小的优势。并且Visual Studio的市场占有率也是非常高的,很多院校、培训机构、企业都在使用。因此,建议有条件的初学者优先选用Visual Studio。如果实在无法安装Visual Studio,那么Dev-C++或Code::Blocks也可以作为替代。
问题6:如何保持学习C++的积极性和热情?
回答:对于大多数初学者来说,学习C++语言还是有一定难度的。因此,必须要掌握好学习的速度和节奏,不要对自己产生过大的压力。有些读者说只需要3周就能把小半本书看完,可是剩下的那部分却始终看不进去。事实上这说明了前面的小半本书还没有完全消化吸收——暴饮暴食自然就要没胃口了。建议初学者不要贪急贪快,那样很容易毁掉自己的学习热情。如果为自己订制了一个相对长期的、宽松的学习计划,反而更容易培养自己的积极性。
问题7:零基础的初学者应该学VB还是学C++?
分已经基本固定,不会经常发生重大变化,因此即使年龄稍大,经过努力后掌握C++是完全可能的。
问题4:很多网友说学习C++之前要学C语言,是这样吗?
回答:C语言的部分语法的确与C++相似甚至相同。如果有C语言的基础学习C++肯定会更快。但是,这并不意味着学习C++之前必须要学C语言,而且对于初学者来说在短时间内接触这两种语言反而会造成部分概念的混淆。因此,如果你的目标是C++而不是C语言,那么不必特意在学习C++之前先去学C语言。
问题5:现在学习C++主要有哪些集成开发环境?哪个最适合初学者?
回答:首先需要说明的是,集成开发环境和编译器又不是一回事情。通常集成开发环境可以搭配一种或多种编译器。编译器的功能是将C++源程序转变成可执行的程序,而集成开发环境则是一系列代码编辑、调试和管理工具。目前Windows操作系统下使用比较广泛的集成开发环境有微软的Visual Studio(包括6.0版、2010版和2012版等)、Dev-C++、Eclipse、Code::Blocks等。从集成开发环境的界面友好程度来看,微软的Visual Studio有着不小的优势。并且Visual Studio的市场占有率也是非常高的,很多院校、培训机构、企业都在使用。因此,建议有条件的初学者优先选用Visual Studio。如果实在无法安装Visual Studio,那么Dev-C++或Code::Blocks也可以作为替代。
问题6:如何保持学习C++的积极性和热情?
回答:对于大多数初学者来说,学习C++语言还是有一定难度的。因此,必须要掌握好学习的速度和节奏,不要对自己产生过大的压力。有些读者说只需要3周就能把小半本书看完,可是剩下的那部分却始终看不进去。事实上这说明了前面的小半本书还没有完全消化吸收——暴饮暴食自然就要没胃口了。建议初学者不要贪急贪快,那样很容易毁掉自己的学习热情。如果为自己订制了一个相对长期的、宽松的学习计划,反而更容易培养自己的积极性。
问题7:零基础的初学者应该学VB还是学C++?
回答:不得不承认,用Visual Basic制作一个Windows窗口界面的程序比C++方便得多。因此,初学者可能在学习Visual Basic的时候觉得更容易,更有成就感。Basic和C++属于计算机高级语言中的两支路线,各有所长。但是,从计算机高级语言的发展趋势来说,C++更具有代表性。如果只是想了解一下程序设计,学习Visual Basic也未尝不可。