zoukankan      html  css  js  c++  java
  • C++3

    76、为什么C语言不支持重载而C++支持重载

    1 这个问题就好比为什么会有externC这种东西C++不是兼容C 的吗
    2 原因是C++编译器在编译的时候对于不同类型的函数会编译成不同类型的函数名,比如说 int fun(int a, int b) 可能就会被编译成_int_fun_int_int这样子,而C语言的编译器不会,所以如果不写externC  C++编译器会报错,因为它无法找到对应的函数。这也是C++为什么支持重载的原因
    View Code

    77、判断是否是重载

      int *fun(int *)  

      double *fun(double *)

      以上两个是正确的     返回值都是指针

    78、

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class A {
     5 virtual int fun() {}
     6 };
     7 class B {
     8 virtual int fu() {}
     9 };
    10 class D {
    11 virtual int fu() {}
    12 };
    13 
    14 class C :public A, public B,public D {
    15 };
    16 
    17 int main() {
    18 cout << sizeof(A) << endl;//4
    19 cout << sizeof(C) << endl;//12
    20 }
    View Code

    79、vector 迭代器删除要  vec.earse(it --);  因为vector删除元素之后会自动前移

     80、volatile的作用:

    1 C语言中
    2 volatile 表示一个变量时随时可能变化的,编译器需要每次从该变量的地址去值
    3 volatile 有关的操作不需要编译器进行优化了,以避免发生错误,因为优化的话如果编译器发现两次操作都没有对某个变量的值进行改变那么他会自动取得上一次的值,只对于寄存器变量以及端口数据很容易出错。
    View Code

     81、swap

     1 void swap(int *p, int *q) {
     2     int *tmp;
     3     *tmp = *p;
     4     *p = *q;
     5     *q = *tmp;
     6 }
     7 //这样处理是非常危险的  因为 tmp是个野指针  我对于野指针赋值是很危险的
     8 
     9 正解
    10 void swap(int *p, int *q) {
    11     int tmp;
    12     tmp = *p;
    13     *p = *q;
    14     *q = tmp;
    15 }
    View Code
  • 相关阅读:
    网站添加手机短信功能
    FileWriter的正确使用,请及时关闭流
    myeclipse9.0没有提示
    Integer.getInteger,are you kinding me? 好吧, 我还是没怎么弄明白,求高人解答。。。
    构造方法充当临时对象&Calendar的使用
    关于Spring IOC的一点个人理解
    在JAVA中使用GUID
    动态生成table下的<tr>标签不显示
    MD5加密实例
    String,StringBuffer 和 StringBuilder 的区别
  • 原文地址:https://www.cnblogs.com/zhanzhao/p/5905736.html
Copyright © 2011-2022 走看看