pre{
line-height:1;
color:#800080;
background-color:#d2c39b;
font-size:16px;}.sysFunc{color:#627cf6;font-style:italic;font-weight:bold;}
.selfFuc{color:#800080;}
.bool{color:#d2576f;}
.condition{color:#000080;font-weight:bold;}
.key{color:#000080;}
.var{color:#800000;font-style:italic;}
.Digit{color:#ff00ff;font-weight:bold;}
.includePre{color:#800080;}
.operator {color:#008000;font-weight:bold;}

1 设置随机数 

 

 

    #include <iostream>  
    #include <cstdlib>  
    #include <ctime>  
    using namespace std;  

 

    int a[50];  
    srand((unsigned)time(NULL));    
    for (int i=0;i<50;i++)  
    {  
        a[i]=rand()%100;  
    }  
 

 

    #include "time.h"  
 

 

    srand( (unsigned)time( NULL ) );   
      
    int i=rand()%5;  
 

2 静态函数

  在AllResult.h中进行声明
 如:

 

    #include "stdafx.h"  
    #include <iomanip>  
    #include <iostream>  
    #include <Windows.h>  
    //#include <vector>  
    using namespace std;  
      
    static BOOL EightQueen();  
    static void PrintChessBoard();  
    static BOOL TestNode(int i,int j);  
      
     void QueenAll();  
 

在AllResult.cpp中进行定义

 

    static BOOL EightQueen(){  
      
        //只需判断第一行中  是否有合适位置即可  
      
        BOOL  bExist=FALSE;  
      
        for (int j=0;j<NUM;j++)  
        {  
            if (TestNode(0,j))  
            {  
                bExist=TRUE;  
                //  break;  
      
            }  
      
        }  
      
        return bExist;  
      
    }  

注: 定义的静态函数只能在本个 AllResult.h  AllResult .CPP可以调用, 在其他.CPP .H中不可调用 ,  即使将AllResult.h作为头文件包含到其他文件中,在其他文件中也不可调用此静态函数,因为,静态函数的有效范围是本次文件,当出了本文件范围后,则不可调用

         静态函数只是在声明它的文件当中可见,不能被其他文件所调用,也就是说该函数只能在定义的.cpp或.c中调用,在其它.cpp或.c文件的函数里是不能调用的.
 

比如: 第3个文件queen.cpp

 

 

    #include "stdafx.h"  
      
    #include "AllResult.h"  
      
    int main()  
    {  
        //调用了 AllResult.h 中的静态函数,因此编译时出错,  出现  函数已声明但未定义的错误  
        EightQueen();  
      
        //此函数也是AllResult.h 文件中定义的, 但因为不是静态函数,故可以在其他文件中使用  
        QueenAll();  
      
        getchar();  
      
        return 0;  
    }  
 

3 类静态变量声明与赋值

 

类中进行声明:

 

    public:  
         static CString m_filePath;  // 只是起到声明作用,还需要定义  

类外进行定义:

且不能在.H文件中进行定义, 需要在.CPP实现文字中定义

因为,如果在.H中进行定义的话, 连接时,很可能出现多重定义错误,因为包含了多次.H文件,就出现了多次定义

。cpp中定义:

 

    CString CComputerNumDlg::m_filePath=_T("");  
 

数据成员的声明与定义都是放在.h文件的类定义内部。对于数据类型,关键问题是其初始化要放在什么地方进行。

对于只含有static限定符的数据成员,它的初始化要放在.cpp文件中。因为它是所有类对象共有的,因此必须对它做合适的初始化。

对于只含有const限定符的数据成员,它的初始化只能在构造函数的初始化列表中完成。因为它是一经初始化就不能重新赋值,因此它也必须进行合适的初始化。

对于既含有static限定符,又含有const限定符的数据成员,它的初始化和定义同时进行。它也是必须进行合适的初始化

对于既没有static限定符,又没有const限定符的数据成员,它的值只针对本对象可以随意修改,因此我们并不在意它的初始化什么时候进行。

实例:

.h 类的定义
 

 

     class Test  
    {  
    public:  
        Test(void);  
      
        static int m;  
        const int n;  
      
        // static const 在定义时进行初始化  
        static const int i=9;  
      
    };  
 
.cpp类的实现

 

    #include "StdAfx.h"  
    #include "Test.h"  
      
    Test::Test(void):n(10) // const 常量 在构造函数的初始化列表中进行初始化  
    {  
          
      
      
    }  
      
    //static 变量在.cpp 类的外部进行初始化  
    int  Test::m=6;  
 
 

4 定义全局变量

 
      在TEST.H中 声明      
      extern int i;
      在TEST.cpp中定义
     int i=0;
     在其他用到这个全局变量的CPP文件中,加上这个声明全局变量的头文件   TEST.H 
     这样,在该文件中就可以直接使用这个全局变量了
 

分析:

     全局类型,声明写在.h文件中。
     对于函数来讲,没有实现体的函数,就相当于是申明;
     而对于数据类型(包括基本类型和自定义类型)来说,其申明就需要用extern来修饰。
     然后在.cpp文件里定义、实现或初始化这些全局函数和全局变量。
    

工程.H

 

    extern CketangApp theApp;  

工程.CPP

 

    CketangApp theApp;  

在其它文件中用到时,添加工程.H 

5 将CALLBACK函数 封装在类内部

此时,需要将CALLBACK函数,设置为静态函数,其所调用的类变量 也是类的静态变量

 

 

    public:  
      
        static  int CALLBACK  BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)  
        {  
      
            CString str=_T("C:\\Program Files");  
            switch(uMsg)  
            {  
            case BFFM_INITIALIZED:    //初始化消息  
      
                ::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)(LPTSTR)(LPCTSTR)m_filePath);   //传递默认打开路径 (方法一)  m_filePath 为类的静态变量  
              
      
                break;  
            case BFFM_SELCHANGED:    //选择路径变化,  
                {  
                    TCHAR curr[MAX_PATH];     
                    SHGetPathFromIDList((LPCITEMIDLIST)lParam,curr);     
                    ::SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)curr);     
                }  
                break;  
            default:  
                break;  
            }  
      
            return 0;     
        }  
 

6  File *fp 获得文件长度

 

 

    FILE* fp = _tfopen( filePath, _T("rb") );  
      
    if (fp==NULL)  
    {  
        MessageBox(L"未能打开");  
    }  

 

    // Get file length  
    fseek( fp, 0, SEEK_END );// 定位到文件末尾  
    int nFileByteLen = ftell( fp );//获得文件末尾处的位置 ---- 同时,此位置数值 也即是文件长度  
    fseek( fp, 0, SEEK_SET ); //定位到文件开始  

本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。

 

c++ 小知识总结 .xml的更多相关文章

  1. Android简易实战教程--第三十四话《 自定义SeekBar以及里面的一些小知识》

    转载本专栏文章,请注明出处尊重原创:博客地址http://blog.csdn.net/qq_32059827/article/details/52849676:小杨的博客 许多应用可能需要加入进度,例 ...

  2. 记录一下学习Android的小知识

    目前要设计即时通讯的整体架构,包括服务端.Android.IOS.PC.平板等等系统,所以需要研究一下手机的实现方式,开始从Android入手,偶尔在这记录下小知识. ADT: 1.页面功能请求结构, ...

  3. React Native环境配置、初始化项目、打包安装到手机,以及开发小知识

    1.前言 环境:Win10 + Android 已经在Windows电脑上安装好 Node(v14+).Git.Yarn. JDK(v11) javac -version javac 11.0.15. ...

  4. 蓝牙Bluetooth技术小知识

    蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...

  5. HTML+CSS中的一些小知识

    今天分享一些HTML.CSS的小知识,希望能够对大家有所帮助! 1.解决网页乱码的问题:最重要的是要保证各个环节的字符编码一致! (1)编辑器的编辑环境的字符集(默认字符集):Crtl+U 常见的编码 ...

  6. iOS APP开发的小知识(分享)

          亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...

  7. Unix系统小知识(转)

    Unix操作系统的小知识 2.VI添加行号/翻页/清屏 .在对话模式时(即输完Esc再输入: ),输入“:set number”可以将编辑的文本加上行号.跟玩俄罗斯方块一样方便的上下左右移动箭头的快捷 ...

  8. salesforce 零基础开发入门学习(十)IDE便捷小知识

    在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...

  9. Jquery:小知识;

    Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器   上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...

随机推荐

  1. Echarts事件

    Echart饼图.柱状图.折线图(pie.bar.line)添加点击事件发布日期:2014年08月10日   来源:PHP1.CN     点击:250638摘要:var myChart= echar ...

  2. PHP 对象及其三大特性

    //面向过程 //类和对象 //对象:任何东西都可以成为对象,类实例化出来的东西 //类:对所有同类的对象抽象出来的东西 //info:code,name,sex,nation,birthday // ...

  3. Android init.rc解析【转】

    转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. ...

  4. 索引 split2

    当往一个已经满了的索引块中插入新的索引条目时,将发生索引块的split,在9i下,分两种不同的情况进行split: (1)如果插入的索引键值不是最大的,将发生50-50的split,也就是说有bloc ...

  5. java 反编译插件 JD-Eclipse 和 JD-IntelliJ

    去官网 : http://jd.benow.ca/ 找到 JD-Eclipse 和  JD-IntelliJ,下载,前者安在eclipse上,后者安在as上.

  6. 台湾P2P平台

    2014年6月28日下午1:30,“2014两岸三地P2P网贷行业高峰论坛”在上海会展中心友谊会堂如期举行,现场高朋满座,来自全国各地的众多知名P2P网站平台的负责人参与了讨论,并就当前P2P行业的一 ...

  7. 1427. SMS(DP)

    1427 题意不太好理解 其它没什么 细心啊 细心 一个0写成了1 WA半天 以每个字符是以第一种方式还是第二种方式来D #include <iostream> #include<c ...

  8. 转载 近期微博吐槽言论存档,涉及“性能优化”、C++陋习等

    http://blog.csdn.net/solstice/article/details/9923615 近期微吐槽博言论存档,涉及“性能优化”.C++陋习等 写C++程序的几个陋习:class 名 ...

  9. 单点登录系统构建之一——基础知识(Kerberous/SAML)

    http://web.mit.edu/kerberos/ Kerberos Kerberous是一个网络身份验证协议,它被设计为客户端/服务器提供基于密钥的强加密机制.该协议最初由MIT实现并被广泛商 ...

  10. android 单词

    inflate: 胀, 膨, 通货膨胀, 膨胀系数