c++基础知识

1.访问控制

C++访问控制符有三个private、protected、public。

一个类友元(包含友元函数或者友元类的成员函数或者友元类的所有成员函数)可以访问该类的任何成(包括成员变量及成员方法)。

除去友元外,private成员只有该类自身的成员函数可以访问,protected成员只有该类及其派生类的成员函数可以访问,public成员则该类及其派生类的成员函数和对象都可以访问。


类的继承方式有三种:private、protected、public。

1)private属性不能被继承。

2)使用private继承,父类的protected和public属性在子类中变为private;

     使用protected继承,父类的protected和public属性在子类中变为protected;

     使用public继承,父类中的protected和public属性不发生改变;

2.成员变量初始化

const数据成员必须在构造函数的初始化列表中初始化

static数据成员必须在内的外部进行初始化

const static数据成员必须在申明的时候就进行初始化

初始化列表中的初始化顺序最好是按照变量的申明顺序进行初始化

3.拷贝构造函数 赋值构造函数

拷贝构造函数是在对象被创建时调用的,而赋值函数只能被已经存在了的对象调用

String a(“hello”);
String b(“world”);
String c = a; // 调用了拷贝构造函数,最好写成 c(a);

类String 的拷贝构造函数与赋值函数
// 拷贝构造函数
String::String(const String &other)
{
  // 允许操作other 的私有成员m_data
  int length = strlen(other.m_data);
  m_data = new char[length+1];
  strcpy(m_data, other.m_data);
}
  

// 赋值函数
String & String::operator =(const String &other)
{
  // (1) 检查自赋值
  if(this == &other)
          return *this;
  // (2) 释放原有的内存资源
  delete [] m_data;
  // (3)分配新的内存资源,并复制内容
  int length = strlen(other.m_data);
  m_data = new char[length+1];
  strcpy(m_data, other.m_data);
  // (4)返回本对象的引用
  return *this;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C编程语言的基础知识面试中,通常会涉及以下几个方面的问题: 1. C语言的特点与用途:C语言是一种通用的高级程序设计语言,可以用来开发底层操作系统、嵌入式系统、游戏开发等应用。它具有简洁、效率高、可移植性强等特点。 2. C语言的数据类型与变量:C语言支持不同的数据类型,包括整型、浮点型、字符型等。使用变量来存储数据,变量需要先声明后使用,并且可以进行各种运算。 3. C语言的控制流程:C语言中的控制流程有条件判断语句、循环语句和跳转语句。条件判断语句通过判断条件的真假来决定执行哪个分支;循环语句可以重复执行一段代码,直到满足退出条件;跳转语句可以改变代码的执行顺序。 4. C语言的函数与库:C语言支持函数的定义和调用,可以将一段代码封装成函数,提高代码的复用性。此外,C语言还提供了一些标准库,包括输入输出库、数学库等,可以在程序中使用这些库函数来完成各种操作。 5. C语言的指针和内存管理:C语言具有灵活的指针操作功能,可以通过指针来直接访问内存中的数据。指针可以用于动态内存分配和释放,通过调用malloc()和free()函数来进行操作。 除了以上几个方面的基础知识,面试中可能还会涉及到关于C语言的编程题,例如要求解决某个具体的问题或者实现某个算法等。在面试中,不仅要掌握C语言的基础知识,还需要具备解决问题的思路和能力,能够独立分析和编写C程序。 ### 回答2: C基础知识面试主要涉及面向过程的编程语言C的基础概念、语法和应用。在面试中,通常会涉及以下几个方面的问题: 1. C语言的基本概念和特性:要求候选人能够解释C语言的起源、用途和特点,了解C语言的运行环境和编译过程。 2. C语言的数据类型:面试官可能会问到C语言中的基本数据类型,如int、char、float等,以及它们在内存中的存储方式和占用空间大小。 3. C语言的控制结构:掌握C语言中的分支语句(if-else、switch-case)和循环语句(for、while、do-while),并能够解答相关的应用题。 4. C语言的函数:了解函数的定义、声明和调用规则,理解函数的参数传递和返回值机制,能够编写简单的函数。 5. C语言的指针:熟悉指针的基本概念和用法,了解指针和数组、指针和函数之间的关系,能够解决指针相关的问题。 6. C语言的内存管理:了解动态内存分配(malloc、free)和静态内存分配(全局变量、局部变量)的区别和用法,了解内存泄漏和内存溢出的概念。 7. C语言的文件操作:熟悉文件的打开、读写、关闭等基本操作,能够读写文本文件和二进制文件,了解文件指针的概念和用法。 8. C语言的预处理器:了解预处理器的作用和常用指令(如#define、#include等),理解宏定义的概念和用法。 在C基础知识面试中,除了回答问题,面试官可能还会要求候选人编写简单的C代码,以检测其编程能力和解决问题的能力。所以,在准备面试时,应该复习C语言的基础概念、语法和应用,并进行代码练习,提高自己的实践能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值