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语言中的联合体

时间: 2024-08-28 15:57:01

C++中的结构体,C管理进程代码,C++管理进程代码,C语言中的联合体的相关文章

浅析C#中的结构体和类

类和结构是 .NET Framework 中的常规类型系统的两种基本构造. 两者在本质上都属于数据结构.封装着一组总体作为一个逻辑单位的数据和行为. 数据和行为是该类或结构的"成员",它们包括各自的方法.属性和事件等 对于C/C++程序员来说.结构体和类的差别非常小.仅仅是结构体的默认成员变量为public,类的默认成员变量为private. 可是对于C#来说,结构体和类有非常多的不同. 首先来谈一谈为何须要结构体: 最主要的原因就是结构体有能力去管理.使用不同数据类型的组合. .NE

x264中重要结构体参数解释,参数设置,函数说明 &lt;转&gt;

x264中重要结构体参数解释http://www.usr.cc/thread-51995-1-3.htmlx264参数设置http://www.usr.cc/thread-51996-1-3.html x264中重要结构体参数解释typedef struct x264_param_t{/* CPU 标志位 */unsigned int cpu;int         i_threads;       /* 并行编码多帧 */int         b_deterministic; /*是否允许非

再识C中的结构体

在前面认识C中的结构体中我介绍了结构体的基础知识,下面通过这段代码来回顾一下: 1 #include<stdio.h> 2 #define LEN 20 3 4 struct Student{ //定义结构体 5 char name[LEN]; 6 char address[LEN]; 7 int age; 8 }; 9 10 int main(int argc, char* argv[]) 11 { 12 struct Student s = { //初始化 13 "bluemsu

关于c语言中的结构体使用偏移量求值问题

最近在看nginx源码,看到定时器的时候,发现一个结构体利用偏移量求值问题, 结构体相信做c开发的都遇到过,那么不知你对结构体中成员变量偏移这块是如何理解的; 首先我们先看一下nginx中的那个让我迷惑的地方 ev =    (event_t*)((char*)node - offsetof(event_t, timer)); 这里,可以得知道是利用event_t结构体的timer变量,来反求event_t结构体的地址 说明一下: event_t是一个结构体 node 也是一个结构体 timer

[转]C#中的结构体与类的区别

C#中的结构体与类的区别 经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字struct.在语法上其实类和结构有着很多相似的地方. 定义类的语法 1 class Person 2 { 3 private string name; 4 private int age; 5 6 public void SayHi() 7 { 8 Console.WriteL

C语言中的结构体和C++中的结构体以及C++中类的区别

c++中结构体可以定义一个函数 C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数. C++中的结构体和类的异同: 一.相同之处:结构体中可以包含函数:也可以定义public.private.protected数据成员:定义了结构体之后,可以用结构体名来创建对象.但C中的结构体不允许有函数:也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数. 二.不同之处

C语言中的结构体,结构体数组

C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存对齐的问题.也就是内存里面会有空档. 1.结构体的定义和赋值 结构体是可以直接初始化的,在定义的时候,就可以初始化,而且如果你的结构体中恰好有字符数组的话,这个时候初始化是不错的选择,原因很简单,字符数组只能定义的时候直接初始化 后来就不可以了,后来你就只能用strcpy函数来拷贝初始化了. str

C++中的结构体

http://zhidao.baidu.com/link?url=8OYQSKV9mvSBc6Hkf9NsLQmipSge9VCZDJQGAZZs5PCBQ54UTmK98VRmAklEEAFYu7dHi9yhLhWeLsP4EwFW5_ c++中结构体可以定义一个函数 C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数. C++中的结构体和类的异同: 一.相同之处:结构体中可以包含函数:也可以定义public.pr

认识C中的结构体

C中结构体是另外一种表示数据形式的方式,结构体中可以表示C中的基本数据形式,如int,double....结构体可以让我们更好的表示数据.下面来看看结构体. 说到结构体首先要了解的是它的申明形式,要申明一个结构体形式如下: 1 #include<stdio.h> 2 #define LEN 20 3 4 //申明一个结构体 5 struct name { 6 char firstname[LEN]; 7 char lastname[LEN]; 8 }; 9 10 //申明一个结构体 11 st