标签:c 过渡 c++ 1
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;
}
编译运行
chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
10,tomC++ 结构体,构造函数,析构函数
chunli@ubuntu:~/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;
}
chunli@ubuntu:~/file$
chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
结构体的构造函数
99,忘情水
结构体的析构函数C++结构体的指针
chunli@ubuntu:~/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;
}
chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
结构体的构造函数
99,我是C++结构体指针
结构体的析构函数
chunli@ubuntu:~/file$C++ 结构体 转类
chunli@ubuntu:~/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;
}
chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
结构体的构造函数
ID = 99,name = 我是C++结构体指针,money = 9999
结构体的析构函数
chunli@ubuntu:~/file$C++ 类文件分开写
chunli@ubuntu:~/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;
}
chunli@ubuntu:~/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
chunli@ubuntu:~/file$
chunli@ubuntu:~/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");
}
编译执行:
chunli@ubuntu:~/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;
}
chunli@ubuntu:~/class$ g++ main.cpp && ./a.out
myclass开始
main 开始
main 结束
myclass结束本文出自 “魂斗罗” 博客,请务必保留此出处http://990487026.blog.51cto.com/10133282/1786271
标签:c 过渡 c++ 1
原文地址:http://990487026.blog.51cto.com/10133282/1786271