- 博客(24)
- 收藏
- 关注
原创 window 应用程序的组成及编程步骤
1、应用程序的组成2、源程序 的组成2.1、WinMain函数窗口初始化:b)注册窗口类window系统本身提供部分预定义窗口类,程序员也可以自定义窗口类。窗口类必须先注册后使用,窗口类注册函数是RegisterClass()实现。其形式如下:RegisterCl
2016-10-09 10:49:27 423
原创 常用绘图函数
1.设置画笔当前位置的函数MoveToEx, BOOL MoveToEx(HDC hdc, int X,Y, // X、Y分别为新位置的逻辑坐标 LPPOINT lpPoint //存放原画笔位置的POINT结构地址)2.从当前位置向指定坐标点画直线的函数LineToEx,BOOL LineToEx(HDChdc,intX,int Y) //
2016-10-08 09:12:49 792
原创 window图像设备接口及绘图
Windows图形设备接口(GDI)是为与设备无关的图形设计的。所谓设备的无关性,就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置。1、图形设备按口(GDI)GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字, 是Windows系统的重要组成部分设备描述表即为设备环境的属性的集合。
2016-10-08 08:52:13 390
原创 如何编写简单的应用window窗口程序
#includeLRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow){ HWND hwnd; MSG Msg; WNDCLASS wndclass; char
2016-10-07 20:32:43 3953
原创 析构函数
完成对象被删除前的一些清理工作。在对象的生存期结束的时刻系统自动调用它,然后再释放此对象所属的空间。如果程序中未声明析构函数,编译器将自动产生一个默认的析构函数,其函数体为空。构造函数和析构函数举例#include using namespace std;class Point { public: Point(int xx,int yy); ~Point(); //.
2016-10-07 08:45:57 429
原创 写一个程序,定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形)
写一个程序,定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。#includeusing namespace std;class Shape{ public: virtual float printArea() const {
2016-10-06 16:06:19 82774 2
原创 在例12.3的基础上作以下修改,并作必要的讨论。
在例12.3的基础上作以下修改,并作必要的讨论。(1) 把构造函数修改为带参数的函数,在建立对象时初始化。(2) 先不将析构函数声明为virtual,在main函数中另设一个指向Circle类对象的指针变量,使它指向grad1。运行程序,分析结果。(3) 不作第(2)点的修改而将析构函数声明为virtual,运行程序,分析结果。(1) 把构造函数修改为带参数的函数,在建立对象时初始
2016-10-06 14:49:31 5982
原创 定义Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱体)类。将类的定义部分分别作为3个头文件
定义Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱体)类。将类的定义部分分别作为3个头文件,对它们的成员函数的声明部分分别作为3个源文件(.cpp文件),在主函数中用#include命令把它们包含进来,形成一个完整的程序,并上机运行。头文件1:#ifndef POINT_H#define POINT_H#include u
2016-10-06 11:52:41 34713 4
原创 this指针是允许依靠返回该类对象的引用值来连续调用该类的成员函数
#includeusing namespace std;class date{ int year; int month; public: date() { year=0; month=0; } date& setyear(int yr) { year=(yr<=2008)?yr:0; return *this; } date& setmonth(int m
2016-10-02 18:12:53 1002
原创 this 指针的地址--调用成员函数的所在对象的起始地址
#includeusing namespace std;class Test{ int x; public: Test(int a){ x=a; } void get_this();};void Test:: get_this(){ cout<<"this points to"<<this<<endl;}int main(){ Test obj(12); c
2016-10-02 11:54:34 1497
原创 this指针
建立一个对象时,系统为该对象分配内存栈区空间(位于栈区内),用于存储该对象的非静态数据成员。而该类的成员函数则存于另外的代码分区内。这些成员函数一般都用于访问(读写)该类各对象的各个数据成员。试问:各成员函数怎么知道这些非静态数据成员的地址,也即各对象的地址?原来,每个对象的地址都存放在它自己的this指针内。而每个成员函数的参数表中都隐含着这个指针。应该指出,this指针是指向一个对象的,所
2016-10-02 11:38:17 466
原创 建立不同类型对象时,构造函数和析构函数的调用顺序
头文件#ifndef CONS_DES_H#define CONS_DES_H#includeclass base{ public: base(int); ~base(); private: int data;};#endif隐藏源文件:#include "cons_des.h"#includebase::base(int value):data(
2016-10-02 11:21:58 1645 1
原创 建立全局和局部对象时,不同的构造函数和析构函数的调用顺序
#includeusing namespace std;void create();class base{ int data; public: base(int i) { data=i; cout<<"CONS:"<<i<<endl; } ~base() { cout<<"DES:"<<data<<endl; } void show()
2016-10-02 10:36:19 710
原创 子对象构造函数和析构函数的调用顺序
#includeusing namespace std;class sub_class{ int x; public: sub_class(int z)//构造函数 { x=z; cout<<"Constructor_sub"<<x<<"called!"<<endl; } ~sub_class(){ cout<<"Destructor_sub"<<x<<"call
2016-10-02 10:22:31 947
原创 复合对象复制非静态数据
#include#includeusing namespace std;class figure{ int a; double d; public: figure(int j,double m) { a=j; d=m; cout<<"CONS-sub"<<endl; } void sub_show() { cout<<"sub_object:"<
2016-10-01 18:59:52 247
原创 对象复制非静态数据
#include#includeusing namespace std;class point{ int a,b; char *ptr; int size; int arr[3]; public: point(int j,int k,char *s,int m){ a=j; b=k; size=strlen(s)+1; ptr=new char[siz
2016-10-01 18:35:12 246
原创 对象的双区存储
#includeusing namespace std;class base{ public: int x1; static double s; int inc() { return x1; }};double base::s=1.1;int main(){ cout<<"size of class base is"<<sizeof(base)<<end
2016-10-01 12:51:40 211
原创 读取堆区,栈区地址及结论
#includeusing namespace std;int fun();int g;static int sg=10;int main(){int a(3);cout<<"addr.of auto a in main:"<<&a<<endl;static int sb;cout<<"addr.of external static sg(global):"<<&sg<<end
2016-10-01 11:26:38 432
原创 读取堆区的地址
#includeusing namespace std;int main(){ int *p=new int(10); cout<<"address of pointer itself:"<<&p<<endl; cout<<"address of integer :"<<p<<endl; cout<<"integer value:"<<*p<<endl; delete p;
2016-10-01 11:02:48 316
原创 查看DEVC++程序运行的代码区、数据区、栈区、堆区的地址
#includeusing namespace std;int data=23;int main(){ int i=15; int *ptr=new int(8); cout<<"code address:"<<&main<<endl; cout<<"global datum address:"<<&data<<endl; cout<<"local datum address:"
2016-10-01 10:47:56 5228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人