c++中的类和java中定义一样,类是用户定义的一种(元)数据类型,类包含数据和方法,类与实例的关系 就像 基本数据类型如int 与x的关系,x是整形具有数字相关的操作;cout和cin是iostream的实例(java中讲实例和方法,c++讲对象和函数,其实是一样的;具体cout是ostream,cin是istream的实例);
函数原型:
函数声明由函数返回类型、函数名和参数列表组成。参数列表必须包括参数类型,但不必包含具体类型实例。这三个元素被称为函数原型,函数原型描述了函数的接口。
函数原型类似函数定义时的函数头,又称函数声明。为了能使函数在定义之前就能被调用,C++规定可以先说明函数原型,然后就可以调用函数。函数定义可以放在主函数后面。 由于函数原型是一条语句,因此函数原型必须以分号结束。函数原型由函数返回类型、函数名和参数表组成,它与函数定义的返回类型、函数名和参数表必须一致。函数原型必须包含参数的标识符(对函数声明而言是可选的);
函数原型fun(double);函数定义fun(double x);
使用库方法,要添加相应的头文件,如何写一个自己的方法,跟java里类似,但要在main()函数前添加函数原型;函数原型描述了函数接口,
#include <iostream.h>
int myFirstFunction(int);
int main()
{
int x;
x= myFirstFunction(4);
cout<<"this value : "<<x<<endl;
cout<<"this value : "<<myFirstFunction(0)<<endl; //可以直接调用方法返回值
return 0;
}
int myFirstFunction(int x){
return x= x+100;
}
从前面的几个例子中,main函数都有int返回值,java中中main方法是不能有返回值的,在c++中,也可以使void的,声明为int型,那这个返回值会被谁调用呢?
可以将计算机操作系统作为调用程序,main()返回值交给了操作系统,约定返回值为0表示程序运行成功,非0表示存在问题;
查看一个变量的内存地址:
#include <iostream.h>
int main()
{
int x;
x= 4;
cout<<"this parameter memory address : "<<&x<<endl;
return 0;
}
输出:this parameter memory address : 0x0018FF44
short int 带符号2字节短整形 - 32768 ~ 32767 unsigned int 无符号4字节整形 0 ~ 2^32 -1
c++的String与java的String不一样;c++本身没有对String类型封装;
c++中 char hello[5] = "hello"; //这样会保错,因为这是字面赋值方式,会在hello后面加个\0,变成6个字符;
使用char hello[5]={'h','e','l','l','0'};不会报错;但在打印时多出两个汉字:烫虉 若改为6就没事了;
使用 char hello[6] = "hello"; 不会报错;
通过cin来读取String:
char x[7];
cin>>x;
若这样输入 he lloooo 只会读取前两个字符he,若输入hellooo程序运行时出错;
如何将he llo正确读入:cin.getline(hello,7):
#include <iostream.h>
int main()
{
char hello[7];
cin.getline(hello,7);//将输入的字符赋值给hello;
cout<<hello;
return 0;
}
输出:
he llo
he lloPress any key to continue
若执行:
cout<<"ok";
char hello[7];
cin.getline(hello,7);//将输入的字符赋值给hello;
cout<<"hello"<<hello<<endl;
return 0;
输出为:
ok[回车]
hello
而没有执行输入;因为cin将回车键当做空字符输入,这样会导致运行不明确,可以修改为:
cout<<"ok";
char hello[7];
cin.get(); //添加一个无返回的空接收
cin.getline(hello,7);//将输入的字符赋值给hello;
cout<<"hello"<<hello<<endl;
return 0;
c++的String是用string ;并添加<string>不是<string.h> 或<cstring>
#include <iostream>
#include <string>
int main()
{
using namespace std;
string s;
s = "ok";
cout<<s+"\"skx\"";
return 0;
}
字符数组的赋值和追加:要添加头文件。
#include <iostream>
#include <string>
#include <cstring>
int main()
{
using namespace std;
char a[3]="ok";
char b[3];
char c[6] = "世界";
strcpy(b,"ok");
strcat(b,c);
cout<<b<<endl;
return 0;
}
上面b的长度声明为3,实际打印出来更长,这样可能出现异常,c++提供了两个相对安全的方法:strncpy和strncat;