long 和 intptr_t const

获取当前目录下的所有文件,用 _findfirst

4、 const 修饰其左边的关键字,如果自身在最左边,则修饰旁边的。

有如下定义,则编译时会报错的选项有()  
WORD32 const constValue = 10;
WORD32 * const pPointA;
const WORD32 * pPointB;
答案:["A","B","E"]

A、constValue = 1;
B、*pPointA++;
C、*pPointB++;
D、*pPointA += 1;
E、*pPointB += 1;

解析:
const修饰变量,该变量在以后的使用中其值都不能进行改变 A报错
WORD32 * const pPointA;指针是常量,指向的内容是可变的。B选项++运算符优先级高,先要改变指针,所以报错。
D选项 += 运算符优先级低,改变的是地址空间的取值,所以正确。
const WORD32 * pPointB;指针指向的内容是常量,指针是可变的。根据运算符优先级所以C正确,E报错

3、

在开发设计过程中经常用到继承关系,下面关于继承说法正确的是?
答案:["B","C","D"]
A、继承可以把重复代码提取到父类,是最好的复用方式,可以无限制使用。
B、继承打破了封装性,子类依赖于超类的实现细节,和父类耦合。
C、继承给类之间引入了非常紧密的关系,在父类上做任何修改,都有可能会影响子类的行为。
D、子类仅仅使用父类中的部分方法和属性,其他来自父类的馈赠成为了累赘。
解析:
面向对象编程中,有一条非常经典的设计原则,那就是:组合优于继承,多用组合少用继承。
继承最大的问题就在于:继承层次过深、继承关系过于复杂时会影响到代码的可读性和可维护性。
所以A选项错误,B、C、D选项都在具体阐述继承相对于组合的劣势。

 

2、原来c++11下utf8和宽字节转换这么简单

    std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
    std::wstring wide_string = converter.from_bytes(str); 

 

 

1、在vs2013下好使,换成2018不行,后来考虑到  long-->intptr_t 后ok

    //文件句柄  
    //long   hFile = 0;
    intptr_t   hFile = 0;
    //文件信息  
    struct _finddata_t fileinfo;

    string p;

    if ((hFile = _findfirst(p.assign(dir).append("/*").c_str(), &fileinfo)) != -1) {

        do {

 

posted @ 2022-02-22 09:24  cnchengv  阅读(191)  评论(0编辑  收藏  举报