C++中的结构体,C管理进程代码,C++管理进程代码,C语言中的联合体
1.C++中的結構體
#include<iostream>
?
struct lstruct
{
??? int num;
};
?
struct MyStruct
{
??? int num;
??? double db = 10.8;//可以有默認的值
??? //MyStruct sx;//拒絕內部定義自己,也就是說不能夠內部指向自己
??? MyStruct *pnext;
??? MyStruct *phead;
??? lstruct? l1;
??? void boss()? //可以有方法
??? {
??? }
};
?
struct MyStructA
{
??? int num;
??? double db = 10.8;//默認的值
??? //MyStruct sx;//拒絕內部定義自己
??? MyStruct *pnext;
??? MyStruct *phead;
??? lstruct? l1;
??? void boss()
??? {
??? }
};
?
struct
{
??? int num;
??? double db;//默認的值,不能賦初值,否則編譯就會出現錯誤
??? MyStruct boss1;
}sx, sy;//匿名結構體不允許初始化
?
void main()
{
??? MyStruct s1;//自動管理
??? MyStruct *pnew = new MyStruct;//手動
??? s1.l1.num;
??? //pnew->l1.num;
??? (*pnew).l1.num;
??? //類型相同可以整體賦值
??? //結構體C++風格初始化方式
??? MyStruct s2(s1);
??? MyStruct *pnew2(new MyStruct);
??? MyStructA sa1;
??? //MyStruct s3(sa1);C++強類型,必須類型匹配
}
?
void main1()
{
??? MyStruct? s1;
??? std::cout << s1.db << std::endl;
??? sx.boss1.num;//結構體嵌套就是...
??? std::cin.get();
}
2.空類
#include<iostream>
//空類占一個字節,表明類存在
//空類有int,占4個,
?
class kong
{
public:
??? //int num
??? void go(int? num)
??? {
??????? std::cout << "鋤禾日當午";
??? }
};
?
void main()
{
??? std::cout << sizeof(kong) << std::endl;
??? //? std::cout<< &kong << std::endl;
??? kong? kong1;
??? //kong1.num = 10;
??? std::cout << &kong1 << std::endl;
??? std::cin.get();
}
?
3.C語言管理進程
#define? _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<windows.h>
?
//面向過程的模式
//代碼重用主要靠函數
?
void open(const char *path, const int mode)
{
??? ShellExecuteA(0, "open", path, 0, 0, mode);
}
?
void all()
{
??? system("tasklist");
}
?
void closebyname(const char *name)
{
??? char cmdstr[100] = { 0 };
??? sprintf(cmdstr, "taskkill /f/im %s", name);
??? system(cmdstr);
}
?
void closebypid(const int num)
{
??? char cmdstr[100] = { 0 };
??? sprintf(cmdstr, "taskkill /pid%d", num);
??? system(cmdstr);
}
?
void main1()
{
??? all();
??? open("notepad", 1);
??? all();
??? Sleep(2000);
??? int? num;
??? scanf("%d", &num);
??? closebypid(num);
??? //closebyname("notepad.exe");
??? system("pause");
}
?
struct fu
{
??? int a;
??? int b;
};
?
//a+bi,
struct fu? add(struct fu? fu1, struct fu? fu2)
{
??? struct fu? fu3;
??? fu3.a = fu1.a + fu2.a;
??? fu3.b = fu1.b + fu2.b;
??? return fu3;
}
?
void?? main3()
{
??? //數據可以隨便被別人,可以隨便被修改
??? struct fu? fu1 = { 3, 4 };
??? struct fu? fu2 = { 13, 4 };
??? fu1.a += 3;
??? struct fu? fu3 = add(fu1, fu2);
??? printf("%d+%di", fu3.a, fu3.b);
??? getchar();
}
4.C++面向對象管理進程
#define? _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include <windows.h>
?
//C++類的繼承實現代碼重用, C重用??函數
//類的封裝實現權限,封裝,數據與代碼合為一體。C封裝主要是函數
//封裝可以鎖定代碼的權限,鎖定的數據的權限,避免被隨意修改
//類的多態,一個接口根據實際需求完成很多不同的功能
?
class cmduse
{
private:
??? char cmduser[100];//用戶名
??? char cmd[100];//存儲指令
public:
??? void setuser(const char * name)
??? {
??????? strcpy(cmduser, name);
??? }
??? char * getuser()
??? {
??????? return this->cmduser;//返回用戶名
??? }
??? void open(const char *path, const int mode)
??? {
??????? ShellExecuteA(0, "open", path, 0, 0, mode);
??? }
?
??? void all()
??? {
??????? system("tasklist");
??? }
?
??? void closebyname(const char *name)
??? {
??????? memset(this->cmd, 0, 100);//清空字符串
??????? sprintf(this->cmd, "taskkill /f/im %s", name);
??????? system(this->cmd);
??? }
?
??? void closebypid(const int num)
??? {
??????? memset(this->cmd, 0, 100);//清空字符串
??????? sprintf(this->cmd, "taskkill /pid%d", num);
??????? system(this->cmd);
??? }
};
?
void main2()
{
??? cmduse cmduse1;
??? cmduse1.setuser("yincheng");
??? std::cout << cmduse1.getuser() << std::endl;
??? cmduse1.open("calc", 1);
??? cmduse1.open("notepad", 0);
??? Sleep(2000);
??? cmduse1.all();
??? cmduse1.closebyname("calc");
??? int pid;
??? std::cin >> pid;
??? cmduse1.closebypid(pid);//根據編號關閉
?
??? std::cin.get();
??? std::cin.get();
??? //closebypid(100);
}
?
//封裝可以實現代碼權限,不可以隨便調用
class
{
public:
??? void seta(int a)
??? {
??????? //接口
??????? this->a = a;
??? }
??? int geta()
??? {
??????? return this->a;
??? }
??? void setb(int b)
??? {
??????? //接口
??????? this->b = b;
??? }
??? int getb()
??? {
??????? return this->b;
??? }
protected:
?
private:
??? int a;
??? int b;
??? char password[100];
}myab;
?
void main()
{
??? //? myab.geta = 3;
??? myab.seta(10);
??? //封裝解決的問題
??? //類的,代碼與數據,一體化
??? //代碼的封裝,限定代碼誰可以執行誰不可以執行的權限
??? //數據的封裝,防止數據被意外修改
}
5.C++中的聯合體
#include<iostream>
?
//union? 本質也是一個類,可以內部有函數,
//union,內部數據是共享,不同對象之間是獨立的,代碼是共享
//union,也具備結構體所有功能
//某些節約內存的類需要用到共用體
union MyUnion
{
??? int num;
??? double db;
??? void go()
??? {
??? }
};
//內部數據是共享內存,不可以繼承
union MyUnionA
{
??? int num;
??? double db;
??? void go()
??? {
?
??? }
};
?
void main()
{
??? std::cout << sizeof(MyUnion) << std::endl;
??? MyUnion union1;
??? //? union1.db = 10;
??? union1.num = 20;
??? std::cout << union1.num << std::endl;
??? union1.db = 10.9;//時時刻刻共用體僅有一個變量存在
?
??? std::cout << union1.num << std::endl;
??? std::cin.get();
}
?
?
總結
以上是生活随笔為你收集整理的C++中的结构体,C管理进程代码,C++管理进程代码,C语言中的联合体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于汉诺塔,C++代码,代码效果演算
- 下一篇: 敖汉旗汽车学校?