zoukankan      html  css  js  c++  java
  • 几个知识点

    1、内存对齐:http://hi.baidu.com/sxnuwhui/item/bdd8cd9bdffe53d47b7f01a7
    2、MVC与SSH框架对应关系:http://hi.baidu.com/sxnuwhui/item/fafc49730b26a04bef1e53a8
    3、面试相关:http://blog.csdn.net/wfwd/article/details/763664
    4、非C++内建型别A和B, 在哪几种情况下B能隐式转化为A?
    // Case 1 : B公有继承自A  
    class B : public A  
     
        ...  
    }

    // Case 2 : B实现了隐式转化为A的转化  
    class B   
     
        operator A();  
    } 

    // Case 3 : A实现了non-explicit的参数为B的构造函数  
    class A   
     
        A(const B&);  
    }

    // Case 4 : 赋值操作  
    A & operator=(const A&);  


    Case 1:B公有继承自A,可以是间接继承的   
    Case 2:B实现了隐式转化为A的转化   
    Case 3:A实现了non-explicit的参数为B(可以有其他带默认值的参数)构造函数   
    Case 4:赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个

    5extern "C"的惯用法
    (1)在C++中引用C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进行下列处理:

    extern "C"
    {
    #i nclude "cExample.h"
    }

    而在C语言的头文件中,对其外部函数只能指定为extern类型C语言中不支持extern "C"声明,在.c文件中包含了extern "C"时会出现编译语法错误。

    C++引用C函数例子工程中包含的三个文件的源代码如下:

    /* c语言头文件:cExample.h */
    #ifndef C_EXAMPLE_H
    #define C_EXAMPLE_H
    extern int add(int x,int y);
    #endif


    /* c语言实现文件:cExample.c */
    #i nclude "cExample.h"
    int add( int x, int y )
    {
    return x + y;
    }


    // c++实现文件,调用add:cppFile.cpp
    extern "C" 
    {
    #i nclude "cExample.h"
    }
    int main(int argc, char* argv[])
    {
    add(2,3); 
    return 0;
    }

    如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或声明接口函数时,应加extern "C" { }。

    (2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern "C",但是在C语言中不能直接引用声明了extern "C"的该头文件,应该仅将C文件中将C++中定义的extern "C"函数声明为extern类型。

    C引用C++函数例子工程中包含的三个文件的源代码如下:

    //C++头文件 cppExample.h
    #ifndef CPP_EXAMPLE_H
    #define CPP_EXAMPLE_H
    extern "C" int add( int x, int y );
    #endif


    //C++实现文件 cppExample.cpp
    #i nclude "cppExample.h"
    int add( int x, int y )
    {
    return x + y;
    }


    /* C实现文件 cFile.c
    /* 这样会编译出错:#i nclude "cExample.h" */
    extern int add( int x, int y );
    int main( int argc, char* argv[] )
    {
    add( 2, 3 ); 
    return 0;
    }

  • 相关阅读:
    jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。
    ie8及其以下浏览器的document.getElementsByClassName兼容性问题
    document.all的详细解释(document.all基本上所有浏览器可用!)
    CSS浮动属性Float介绍
    JCarouselLite--帮助文档
    css定位之z-index问题分析
    Android手机同步电脑端google chrome书签
    AWK原理及命令和文件输入
    Sed命令
    Shell正则表达式
  • 原文地址:https://www.cnblogs.com/xiao-wei-wei/p/3355787.html
Copyright © 2011-2022 走看看