1,C++
GCC 编译C++兼容C代码
#include <stdio.h> #include <string.h> struct student { int ID; char name[100]; }; int main() { struct student st; st.ID = 10; strcpy(st.name,"tom"); printf("%d,%s\n",st.ID,st.name); return 0; } 编译运行 [email protected]:~/file$ g++ main.cpp && ./a.out 10,tom
C++ 结构体,构造函数,析构函数
[email protected]:~/file$ cat main.cpp #include <stdio.h> #include <string.h> struct student { int ID; char name[100]; void set_id(int id) //C++中结构体支持函数了 { ID = id; } void set_name(const char *name) { strcpy(this->name,name); } //构造函数 student(int ID,const char *name) { this -> ID = ID; strcpy(this ->name,name); printf("结构体的构造函数\n"); } //析构函数 ~student() { printf("结构体的析构函数\n"); } }; int main() { student st(99,"忘情水"); printf("%d,%s\n",st.ID,st.name); return 0; } [email protected]:~/file$ [email protected]:~/file$ g++ main.cpp && ./a.out 结构体的构造函数 99,忘情水 结构体的析构函数
C++结构体的指针
[email protected]:~/file$ cat main.cpp #include <stdio.h> #include <string.h> struct student { int ID; char name[100]; void set_id(int id) //C++中结构体支持函数了 { ID = id; } void set_name(const char *name) { strcpy(this->name,name); } //构造函数 student(int ID,const char *name) { this -> ID = ID; strcpy(this ->name,name); printf("结构体的构造函数\n"); } //析构函数 ~student() { printf("结构体的析构函数\n"); } }; int main() { student *st = new student(99,"我是C++结构体指针"); printf("%d,%s\n",st->ID,st->name); delete st; return 0; } [email protected]:~/file$ g++ main.cpp && ./a.out 结构体的构造函数 99,我是C++结构体指针 结构体的析构函数 [email protected]:~/file$
C++ 结构体 转类
[email protected]:~/file$ cat main.cpp #include <stdio.h> #include <string.h> class student { public: int ID; char name[100]; void set_id(int id) //C++中结构体支持函数了 { ID = id; } void set_money(int money) { this->money = money; } int get_money() { return money; } void set_name(const char *name) { strcpy(this->name,name); } //构造函数 student(int ID,const char *name) { this -> ID = ID; strcpy(this ->name,name); printf("结构体的构造函数\n"); } //析构函数 ~student() { printf("结构体的析构函数\n"); } private: int money;//在外面是不允许直接访问的 }; int main() { student *st = new student(99,"我是C++结构体指针"); st->set_money(9999); int money = st->get_money(); printf("ID = %d,name = %s,money = %d\n",st->ID,st->name,money); delete st; return 0; } [email protected]:~/file$ g++ main.cpp && ./a.out 结构体的构造函数 ID = 99,name = 我是C++结构体指针,money = 9999 结构体的析构函数 [email protected]:~/file$
C++ 类文件分开写
[email protected]:~/file$ vim main.cpp #include <stdio.h> #include <string.h> #include "student.h" int main() { student *st = new student(1,"Linus Torvalds"); st->set_money(999999); printf("ID = %d\n",st->ID); printf("name = %s\n",st->name); printf("money = %d\n",st->get_money()); delete st; return 0; } [email protected]:~/file$ vim student.h #ifndef STUDENT_H #define STUDENT_H class student { public: int ID; char name[100]; void set_id(int id); //C++中结构体支持函数了 void set_money(int money); int get_money(); void set_name(const char *name); student(int ID,const char *name); ~student(); private: int money;//在外面是不允许直接访问的 }; #endif //STUDENT_H [email protected]:~/file$ [email protected]:~/file$ vim student.cpp #include <stdio.h> #include <string.h> #include "student.h" void student::set_id(int id) //C++中结构体支持函数了 { ID = id; } void student:: set_money(int money) { this->money = money; } int student:: get_money() { return money; } void student:: set_name(const char *name) { strcpy(this->name,name); } //构造函数 student::student(int ID,const char *name) { this -> ID = ID; strcpy(this ->name,name); printf("构造函数被调用\n"); } //析构函数 student::~student() { printf("析构函数被调用\n"); } 编译执行: [email protected]:~/file$ g++ main.cpp student.cpp && ./a.out 构造函数被调用 ID = 1 name = Linus Torvalds money = 999999 析构函数被调用
c++实现在主函数之前执行代码
#include <stdio.h> class first { public: first()//构造函数,与类名相同。 { printf("myclass开始 \n"); } ~first()//析构函数,与类名相同。 { printf("myclass结束 \n"); } }; first haha;//定义一个类 int main() { printf("main 开始 \n"); printf("main 结束 \n"); return 0; } [email protected]:~/class$ g++ main.cpp && ./a.out myclass开始 main 开始 main 结束 myclass结束
时间: 2024-11-05 21:35:11