C有数组、结构体、指针、函数、宏
C++有命名空间、引用、默认参数、模板、函数重载、自定义操作符、内联、构造/析构、私有/保护成员、友元、异常。
一、数据类型的声明
1. C++允许数据声明出现在程序的任意位置
C代码(异常)
1 #include <stdlib.h> 2 #include <stdio.h> 3 4 int main(int argc, char* argv[]) 5 { 6 for(int i=0; i<5; i++) 7 printf("hello %d\n", i); 8 9 return 0; 10 }
C++代码(正常)
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 int main(int argc, char* argv[]) 6 { 7 for(int i=0; i<5; i++) 8 printf("hello %d\n", i); 9 10 return 0; 11 }
2. c++允许使用结构体名定义实体
C代码(异常)
1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <string.h> 4 5 //C语言中不能直接使用结构体名定义实体 6 struct Person 7 { 8 char name[20]; 9 int age; 10 }; 11 12 int main(int argc, char* argv[]) 13 { 14 //struct Person person; 15 Person person; 16 17 strcpy(person.name, "Tom"); 18 person.age = 5; 19 20 printf("%s age is %d\n", person.name, person.age); 21 22 return 0; 23 }
C++代码(正常)
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 //C++中可以直接使用结构体名定义实体 7 struct Person 8 { 9 char name[20]; 10 int age; 11 }; 12 13 int main(int argc, char* argv[]) 14 { 15 // 16 Person person; 17 18 strcpy(person.name, "Tom"); 19 person.age = 5; 20 21 printf("%s age is %d\n", person.name, person.age); 22 23 return 0; 24 }
二、struct
1. C++允许对struct内数据成员进行操作的函数,作为struct成员声明。
C代码(异常)
1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <string.h> 4 5 //C中不允许对struct内数据成员进行操作的函数,作为struct成员声明 6 struct Person 7 { 8 char name[20]; 9 int age; 10 11 // 12 void output() { printf("%s age is %d\n", name, age); } 13 }; 14 15 int main(int argc, char* argv[]) 16 { 17 struct Person person; 18 19 strcpy(person.name, "Tom"); 20 person.age = 5; 21 22 person.output(); 23 24 return 0; 25 }
C++代码(正常)
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 //C++中允许对struct内数据成员进行操作的函数,作为struct成员声明 7 struct Person 8 { 9 char name[20]; 10 int age; 11 12 // 13 void output() { printf("%s age is %d\n", name, age); } 14 }; 15 16 int main(int argc, char* argv[]) 17 { 18 // 19 Person person; 20 21 strcpy(person.name, "Tom"); 22 person.age = 5; 23 24 person.output(); 25 26 return 0; 27 }
时间: 2024-10-15 10:53:17