c语言编程笔录

首页 >   > 笔记大全

笔记大全

c精选面试题 一定要了解

更新时间:2023-09-30

c++精选面试题

c++是一种高效而又底层的编程语言,也是面试中经常涉及的一个重要领域。本文将涵盖一些c++中常见的面试问题并提供详细答案。

1. C++中的多态

多态是面向对象编程的一个重要特性,能够使得不同的对象以不同的方式响应相同的消息。在c++中,多态有两种类型,即静态多态和动态多态。静态多态是通过函数重载或模板实现的。例如:

	class Test{
		public:
			void print(int x){
				std::cout<<"int: "<
	

动态多态是通过虚函数实现的。例如:

	class Base{
		public:
			virtual void print(){
				std::cout<<"I'm Base\n";
			}
	};

	class Derived: public Base{
		public:
			void print(){
				std::cout<<"I'm Derived\n";
			}
	};

	Base * b=new Derived();
	b->print();
	

2. C++中的智能指针

在c++中,智能指针可以自动管理内存,避免内存泄漏等问题。共有四种类型的智能指针:unique_ptr、shared_ptr、weak_ptr和auto_ptr(C++11之前)。其中,unique_ptr是独占所有权,只能有一个指针指向它。例如:

	std::unique_ptr<int> up1(new int(1));
	std::unique_ptr<int> up2=std::move(up1);//转移所有权
	

shared_ptr则允许多个指针指向同一个对象,由引用计数来维护。例如:

	std::shared_ptr<int> sp1(new int(2));
	std::shared_ptr<int> sp2=sp1; //引用计数加1
	

3. C++中的函数指针

在c++中,函数的名字并不是指向函数的指针,而是在编译时被转化为函数的入口地址。因此,函数指针就是指向函数入口地址的指针。例如:

	void print(std::string s){
		std::cout<

	

4. C++中的const关键字

const关键字用于声明不可修改的变量、不可调用非const成员函数的const对象以及函数形参的const属性。例如:

	const int a=5;
	a=6;//错误,a是const变量

	class Test{
		public:
			void print() const{
				std::cout<<"I'm const object\n";
			}
	};

	Test t;
	const Test ct;
	t.print(); //调用普通成员函数
	ct.print(); //调用const成员函数

	void func(const int &x){
		x=5; //错误,x是const引用
	}
	

总结

本文涵盖了一些c++中常见的面试问题,包括多态、智能指针、函数指针和const关键字。对于想要成为一名成功的c++程序员的人来说,这些问题可以帮助他们更好地理解c++的核心概念,从而在面试中更好地表现。