C++ 高頻面試題

C++ 初級面試題及其詳細解答

1. 解釋 C++ 中的基本數據類型。

解答
C++ 提供了幾種基本數據類型,包括:

  • int:整型,用于存儲整數。
  • floatdouble:浮點型,用于存儲小數。
  • char:字符型,用于存儲單個字符。
  • bool:布爾型,用于存儲 truefalse 值。
  • void:無類型,通常用于函數返回類型。

示例:

int a = 10;
float b = 3.14;
char c = 'A';
bool d = true;

2. 如何在 C++ 中定義和使用函數?

解答
在 C++ 中定義函數需要指定返回類型、函數名和參數列表。使用函數時通過函數名和參數進行調用。

示例:

#include <iostream>
using namespace std;int add(int x, int y) {return x + y;
}int main() {int result = add(3, 4);cout << "Result: " << result << endl;return 0;
}

3. 解釋 C++ 中的引用和指針。

解答

  • 引用:是已有變量的別名,定義時必須初始化,不能更改引用目標。
  • 指針:是存儲變量地址的變量,可以在初始化后修改指向的地址。

示例:

int a = 5;
int& ref = a;  // 引用
int* ptr = &a; // 指針ref = 10; // 修改 a 的值
*ptr = 15; // 修改 a 的值

4. 什么是類和對象?如何定義和使用?

解答

  • :是定義對象的藍圖,包含屬性和方法。
  • 對象:是類的實例,通過類創建。

示例:

class MyClass {
public:int x;void display() {cout << "Value: " << x << endl;}
};int main() {MyClass obj;obj.x = 10;obj.display();return 0;
}

5. 解釋構造函數和析構函數。

解答

  • 構造函數:是類的特殊函數,用于初始化對象。名稱與類名相同,無返回類型。
  • 析構函數:在對象銷毀時調用,用于清理資源。名稱與類名相同,前加 ~ 符號,無返回類型。

示例:

class MyClass {
public:MyClass() { cout << "Constructor called" << endl; }~MyClass() { cout << "Destructor called" << endl; }
};int main() {MyClass obj;return 0;
}

6. 如何在 C++ 中實現函數重載?

解答
函數重載是指在同一個作用域內定義多個函數,這些函數具有相同的名稱但參數列表不同。

示例:

#include <iostream>
using namespace std;int add(int a, int b) {return a + b;
}double add(double a, double b) {return a + b;
}int main() {cout << "Int add: " << add(3, 4) << endl;cout << "Double add: " << add(3.5, 4.5) << endl;return 0;
}

7. 解釋 C++ 中的繼承。

解答
繼承是面向對象編程的特性,允許一個類從另一個類派生,繼承基類的屬性和方法。使用 : 和訪問控制符(public, protected, private)實現繼承。

示例:

class Base {
public:void display() {cout << "Base class display" << endl;}
};class Derived : public Base {
public:void show() {cout << "Derived class show" << endl;}
};int main() {Derived obj;obj.display();obj.show();return 0;
}

8. 解釋 C++ 中的虛函數和純虛函數。

解答

  • 虛函數:使用 virtual 關鍵字聲明,可以在派生類中重寫,實現多態性。
  • 純虛函數:使用 = 0 聲明,必須在派生類中實現,所在類為抽象類,不能實例化。

示例:

class Base {
public:virtual void display() {cout << "Base display" << endl;}
};class Derived : public Base {
public:void display() override {cout << "Derived display" << endl;}
};int main() {Base* ptr = new Derived();ptr->display();  // 輸出:Derived displaydelete ptr;return 0;
}

9. 解釋 C++ 中的模板。

解答
模板是泛型編程的基礎,允許定義函數或類時使用類型參數,從而在使用時指定具體類型。分為函數模板和類模板。

示例:

template <typename T>
T add(T a, T b) {return a + b;
}int main() {cout << "Int add: " << add(3, 4) << endl;cout << "Double add: " << add(3.5, 4.5) << endl;return 0;
}

10. 如何在 C++ 中處理異常?

解答
使用 trycatchthrow 關鍵字處理異常。try 塊中放置可能拋出異常的代碼,catch 塊處理異常,throw 拋出異常。

示例:

#include <iostream>
using namespace std;int divide(int a, int b) {if (b == 0) {throw runtime_error("Division by zero");}return a / b;
}int main() {try {cout << divide(10, 0) << endl;} catch (const runtime_error& e) {cout << "Error: " << e.what() << endl;}return 0;
}

C++ 中級面試題及其詳細解答

1. 解釋 C++ 中的深拷貝與淺拷貝的區別。

解答

  • 淺拷貝:拷貝對象的所有成員,包括指針,但不會拷貝指針所指向的內容,導致多個對象共享同一塊內存。
  • 深拷貝:不僅拷貝對象的所有成員,還會拷貝指針所指向的內容,確保每個對象都有獨立的內存。

示例:

class MyClass {
public:int* data;MyClass(int value) {data = new int(value);}// 深拷貝構造函數MyClass(const MyClass& other) {data = new int(*other.data);}~MyClass() {delete data;}
};

2. 解釋 C++ 中的智能指針及其類型。

解答
C++11 引入了智能指針,自動管理動態內存,防止內存泄漏。常見類型包括:

  • std::unique_ptr:獨占所有權,一個時間點只有一個智能指針指向對象。
  • std::shared_ptr:共享所有權,多個智能指針可以指向同一對象,使用引用計數管理。
  • std::weak_ptr:弱引用,不增加引用計數,避免循環引用。

示例:

#include <memory>std::unique_ptr<int> p1(new int(5));
std::shared_ptr<int> p2 = std::make_shared<int>(10);
std::weak_ptr<int> p3 = p2;

3. 如何在 C++ 中實現一個簡單的 RAII 類?

解答
RAII(資源獲取即初始化)是一種管理資源的慣用方法,通過對象的生命周期管理資源。實現一個簡單的 RAII 類,確保資源在構造時獲取,在析構時釋放。

示例:

class RAII {
public:RAII() {resource = new int(5);  // 獲取資源}~RAII() {delete resource;  // 釋放資源}
private:int* resource;
};int main() {RAII obj;// 資源在作用域結束時自動釋放return 0;
}

4. 解釋 C++ 中的多態性及其實現方式。

解答
多態性允許通過基類指針或引用調用派生類的方法。實現方式包括:

  • 編譯時多態:通過函數重載和模板實現。
  • 運行時多態:通過虛函數實現。

示例:

class Base {
public:virtual void show() {cout << "Base show" << endl;}
};class Derived : public Base {
public:void show() override {cout << "Derived show" << endl;}
};int main() {Base* ptr = new Derived();ptr->show();  // 輸出:Derived showdelete ptr;
}

5. 什么是拷貝構造函數和賦值運算符重載?為什么需要它們?

解答

  • 拷貝構造函數:用于創建對象的副本,防止默認淺拷貝導致資源沖突。語法:ClassName(const ClassName& other);
  • 賦值運算符重載:用于賦值操作,防止默認淺拷貝導致資源沖突。語法:ClassName& operator=(const ClassName& other);

示例:

class MyClass {
public:int* data;MyClass(int value) {data = new int(value);}// 拷貝構造函數MyClass(const MyClass& other) {data = new int(*other.data);}// 賦值運算符重載MyClass& operator=(const MyClass& other) {if (this != &other) {delete data;data = new int(*other.data);}return *this;}~MyClass() {delete data;}
};

6. 解釋 C++ 中的虛函數表(V-Table)。

解答
虛函數表是編譯器為支持多態性生成的結構。它包含類的虛函數指針。每個包含虛函數的類實例都有一個隱藏的指針指向對應的虛函數表。調用虛函數時,通過虛函數表找到實際調用的函數地址。

示例:

class Base {
public:virtual void show() {cout << "Base show" << endl;}
};class Derived : public Base {
public:void show() override {cout << "Derived show" << endl;}
};int main() {Base* ptr = new Derived();ptr->show();  // 通過 V-Table 調用 Derived::showdelete ptr;
}

7. 解釋 C++ 中的內聯函數及其優缺點。

解答
內聯函數通過 inline 關鍵字聲明,提示編譯器將函數體展開到調用處,減少函數調用開銷。優點包括減少函數調用開銷,提高執行效率。缺點是可能增加代碼大小,導致指令緩存效率降低。

示例:

inline int add(int a, int b) {return a + b;
}int main() {int result = add(3, 4);  // 內聯展開,減少調用開銷return 0;
}

8. 解釋 C++ 中的命名空間及其用途。

解答
命名空間用于組織代碼,避免命名沖突。使用 namespace 關鍵字定義,通過作用域解析運算符 :: 訪問命名空間中的成員。常用于大型項目和庫中。

示例:

namespace MyNamespace {int value = 10;void show() {cout << "Value: " << value << endl;}
}int main() {MyNamespace::show();  // 訪問 MyNamespace 中的成員return 0;
}

9. 解釋 C++ 中的虛繼承及其用途。

解答
虛繼承用于解決多重繼承中的菱形繼承問題,防止基類的多份拷貝。使用 virtual 關鍵字聲明虛繼承。這樣,派生類只包含一份基類的成員。

示例:

class Base {
public:int value;
};class Derived1 : virtual public Base {};
class Derived2 : virtual public Base {};class Final : public Derived1, public Derived2 {
public:void show() {value = 10;  // 沒有二義性cout << "Value: " << value << endl;}
};int main() {Final obj;obj.show();return 0;
}

10. 解釋 C++11 引入的 nullptr 和其優勢。

解答
nullptr 是 C++11 引入的空指針常量,用于替代 NULL0,解決了它們與整數混淆的問題。nullptrstd::nullptr_t 類型,能更明確地表示指針為空,提高代碼可讀性和類型安全性。

示例:

void func(int x) {cout << "Integer: " << x << endl;
}void func(int* ptr) {cout << "Pointer" << endl;
}int main() {func(0);        // 調用 func(int)func(nullptr);  // 調用 func(int*)return 0;
}

C++ 高級面試題及其詳細解答

1. 解釋 C++ 中的內存模型和內存管理。

解答
C++ 中的內存模型包括堆、棧、自由存儲區和全局/靜態區:

  • :局部變量和函數調用信息,自動管理。
  • :動態分配內存,需要手動管理(newdelete)。
  • 自由存儲區mallocfree 管理的內存。
  • 全局/靜態區:存儲全局變量和靜態變量,在程序結束時釋放。

內存管理包括防止內存泄漏、雙重釋放、無效指針等問題。智能指針(如 std::unique_ptrstd::shared_ptr)有助于自動管理內存,減少內存泄漏風險。

2. 解釋 C++11 中的移動語義和 std::move 的作用。

解答
移動語義通過引入右值引用(T&&)和移動構造函數、移動賦值運算符,優化資源管理,避免不必要的拷貝。std::move 用于將左值強制轉換為右值引用,允許對象資源的轉移,而不是復制。

示例:

#include <utility>class MyClass {
public:MyClass() : data(new int[100]) {}~MyClass() { delete[] data; }// 移動構造函數MyClass(MyClass&& other) noexcept : data(other.data) {other.data = nullptr;}// 移動賦值運算符MyClass& operator=(MyClass&& other) noexcept {if (this != &other) {delete[] data;data = other.data;other.data = nullptr;}return *this;}private:int* data;
};int main() {MyClass obj1;MyClass obj2 = std::move(obj1);  // 使用移動構造函數return 0;
}

3. 解釋 C++ 中的線程與線程同步機制。

解答
C++11 引入了線程支持,提供了 std::thread 進行多線程編程。線程同步機制包括:

  • 互斥鎖(std::mutex:保護共享數據,防止數據競爭。
  • 條件變量(std::condition_variable:實現線程間的等待和通知。
  • 讀寫鎖(std::shared_mutex:允許多個線程并發讀取,獨占寫入。

示例:

#include <thread>
#include <mutex>
#include <iostream>std::mutex mtx;void print(int i) {std::lock_guard<std::mutex> lock(mtx);std::cout << "Thread " << i << std::endl;
}int main() {std::thread t1(print, 1);std::thread t2(print, 2);t1.join();t2.join();return 0;
}

4. 如何實現一個線程安全的單例模式?

解答
使用雙重檢查鎖定實現線程安全的單例模式。確保在多線程環境下只有一個實例被創建。

示例:

#include <mutex>class Singleton {
public:static Singleton* getInstance() {if (instance == nullptr) {std::lock_guard<std::mutex> lock(mtx);if (instance == nullptr) {instance = new Singleton();}}return instance;}private:Singleton() {}static Singleton* instance;static std::mutex mtx;
};Singleton* Singleton::instance = nullptr;
std::mutex Singleton::mtx;

5. 解釋 C++ 中的 constexpr 和其優勢。

解答
constexpr 是 C++11 引入的關鍵字,用于指定常量表達式,允許在編譯時計算結果。優勢包括:

  • 編譯時計算:提高程序效率,減少運行時開銷。
  • 類型安全:通過編譯時檢查,提高代碼安全性和可靠性。
  • 優化機會:允許編譯器進行更好的優化。

示例:

constexpr int square(int x) {return x * x;
}int main() {constexpr int result = square(5);  // 編譯時計算return 0;
}

6. 解釋 C++ 中的協程及其應用。

解答
協程是 C++20 引入的特性,允許函數在執行過程中暫停和恢復,實現異步編程。通過 co_awaitco_yieldco_return 關鍵字使用協程。協程的應用包括事件驅動編程、異步 IO 和生成器等。

示例:

#include <coroutine>
#include <iostream>struct Coroutine {struct promise_type {Coroutine get_return_object() { return {}; }std::suspend_always initial_suspend() { return {}; }std::suspend_always final_suspend() noexcept { return {}; }void return_void() {}void unhandled_exception() { std::terminate(); }};
};Coroutine myCoroutine() {std::cout << "Hello ";co_await std::suspend_always{};std::cout << "World!" << std::endl;
}int main() {auto coro = myCoroutine();coro.resume();return 0;
}

7. 解釋 C++ 中的 CRTP(Curiously Recurring Template Pattern)。

解答
CRTP 是一種模板編程技術,基類以派生類作為模板參數,實現靜態多態性。CRTP 的優勢包括編譯時多態性、性能優化和代碼重用。常用于實現靜態接口和 CRTP 組合。

示例:

template <typename Derived>
class Base {
public:void interface() {static_cast<Derived*>(this)->implementation();}static void staticInterface() {Derived::staticImplementation();}
};class Derived : public Base<Derived> {
public:void implementation() {std::cout << "Derived implementation" << std::endl;}static void staticImplementation() {std::cout << "Derived static implementation" << std::endl;}
};int main() {Derived d;d.interface();  // 輸出:Derived implementationDerived::staticInterface();  // 輸出:Derived static implementationreturn 0;
}

8. 如何在 C++ 中實現 RAII(資源獲取即初始化)?

解答
RAII 是 C++ 管理資源的慣用方法,通過對象的生命周期管理資源。常見的 RAII 包括 std::lock_guardstd::unique_ptr。RAII 類在構造時獲取資源,在析構時釋放資源。

示例:

#include <mutex>class LockGuard {
public:LockGuard(std::mutex& m) : mtx(m) {mtx.lock();}~LockGuard() {mtx.unlock();}
private:std::mutex& mtx;
};std::mutex mtx;int main() {{LockGuard lock(mtx);// 臨界區}  // 自動釋放鎖return 0;
}

9. 解釋 C++ 中的 SFINAE(Substitution Failure Is Not An Error)。

解答
SFINAE 是一種模板編程技術,當模板參數替換失敗時,不會產生編譯錯誤,而是選擇其他重載。SFINAE 用于實現模板的條件編譯、類型推導和靜態多態性。常用工具包括 std::enable_if 和類型特征。

示例:

#include <type_traits>
#include <iostream>template <typename T>
typename std::enable_if<std::is_integral<T>::value, void>::type
print(T value) {std::cout << "Integral: " << value << std::endl;
}template <typename T>
typename std::enable_if<std::is_floating_point<T>::value, void>::type
print(T value) {std::cout << "Floating point: " << value << std::endl;
}int main() {print(42);         // 輸出:Integral: 42print(3.14);       // 輸出:Floating point: 3.14return 0;
}

10. 解釋 C++ 中的表達式模板及其用途。

解答
表達式模板是一種模板編程技術,通過構建表達式樹,在編譯時優化計算。常用于高性能計算庫(如 EigenBoost),避免不必要的臨時對象和拷貝,提高計算效率。

示例:

template <typename L, typename R>
class Add {
public:Add(const L& l, const R& r) : lhs(l), rhs(r) {}auto operator[](size_t i) const {return lhs[i] + rhs[i];}private:const L& lhs

如果喜歡請 收藏 點贊 關注,您的支持是我創作的動力!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35387.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35387.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35387.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 強制使用移動網絡訪問接口

Android 強制使用移動網絡訪問接口_安卓連接wifi強制使用移動數據-CSDN博客 Android應用層實現恢復出廠設置功能_android7 intent 打開恢復出廠設置-CSDN博客

YOLOv8改進 | 主干網絡| 可變形卷積網絡C2f_DCN【CVPR2017】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本專欄所有程序均經過測試&#xff0c;可成功執行&#x1f4a1;&#x1f4a1;&#x1f4a1; 專欄目錄&#xff1a;《YOLOv8改進有效漲點》專欄介紹 & 專欄目錄 | 目前已有40篇內容&#xff0c;內含各種Head檢測頭、損失函數Loss、B…

java SQL server 多實例的情況

而對于java&#xff0c;對付多個數據庫實例就有些要注意的了&#xff1a; 首先&#xff0c;同樣連接字符串上加上“\實例名”&#xff1a; jdbc:sqlserver://127.0.0.1\\mssqlserver2008;DatabaseNameLPT; 此處應去掉端口1433。因為連接數據庫自命名實例的url中沒有端口號1433…

SiLM585x系列SiLM5851NHCG-DG一款具有分離的管腳輸出 單通道隔離驅動器 擁有強勁的驅動能力

SiLM585x系列SiLM5851NHCG-DG是一款單通道隔離驅動器&#xff0c;具有分離的管腳輸出&#xff0c;提供3.0A源電流和6.0A灌電流。主動保護功能包括退飽和過流檢測、UVLO、隔離故障報警和 2.5A 米勒鉗位。輸入側電源的工作電壓為3V至5.5V&#xff0c;輸出側電源的工作電壓范圍為1…

獨孤思維:研發的新賺錢項目,活脫脫掉了幾層皮

01 今天有個讀者問我&#xff0c;xx項目&#xff0c;成功概率多少&#xff1f; 其實這和做這個項目&#xff0c;能賺多少錢&#xff0c;本質是一個問題。 即&#xff0c;有多大的確定性。 言外之意&#xff0c;沒有確定性&#xff0c;不穩定&#xff0c;我就不做了。 可以…

一位軟件測試工程師繁忙的一天

早晨&#xff1a;啟動一天的工作 7:00 AM - 起床 早晨七點準時起床。洗漱、早餐后&#xff0c;檢查了手機上的郵件和消息&#xff0c;了解今天的工作安排和優先事項。 8:00 AM - 前往公司 乘坐地鐵前往公司。在地鐵上&#xff0c;他習慣性地閱讀一些技術博客&#xff0c;了解…

小柴沖刺嵌入式系統設計師系列總目錄

工作兩年 逐漸意識到基礎知識的重要性?? 意識到掌握了這個證書好像就已經掌握了80%工作中用到的知識了。剩下的就在工作的實戰中學習 來和小柴一起沖刺軟考吧&#xff01;加油&#x1f61c; 【小柴沖刺軟考中級嵌入式系統設計師系列】總目錄 前言 專欄目標&#xff1a;沖刺…

涵蓋多項功能的文件外發系統,了解一下

伴隨著業務范圍的不斷擴大&#xff0c;信息化的迅速發展&#xff0c;企業與客戶、供應商等合作伙伴之間的文件交換也愈加頻繁&#xff0c;尤其涉及到核心數據&#xff0c;像核心技術、設計圖紙等敏感數據&#xff0c;對其的保護也是越發重視。文件外發系統&#xff0c;應運而生…

Linux基礎 - RAID 與 LVM 磁盤陣列技術

目錄 零. 簡介 一. RAID 二. LVM 三. 總結 零. 簡介 在 Linux 中&#xff0c;RAID&#xff08;Redundant Array of Independent Disks&#xff0c;獨立磁盤冗余陣列&#xff09;和 LVM&#xff08;Logical Volume Manager&#xff0c;邏輯卷管理器&#xff09;是兩種常用的…

機械繼電器、固態繼電器和模擬開關對比分析

1 結構 2 長期可靠性 與機械繼電器相比&#xff0c;光繼電器明顯提高了可靠性&#xff0c;因為沒有活動器件。 光繼電器通過 LED 進行光學控制。通常情況下&#xff0c;此 LED 會隨著時間的推移比開關本身更快地降級&#xff0c;具體取決于溫度、正向電流、開關速度等。隨著 LE…

群輝NAS使用Kodi影視墻

目錄 一、KODI安裝 二、修改UI語言 1、修改顯示字體 2、修改語言為中文 四、添加媒體庫 五、觀看電影 五、高級設置 1、視圖類型 2、修改點擊播動作 五、補充 1、文件組織結構及命名 2、電影信息的刮削 (1)添加影片 (2)演員管理 (3)影片管理 (4)說明 K…

【面試題】消息中間件

目錄 1.什么是消息中間件&#xff1f;它在分布式系統中的作用是什么&#xff1f;2.列舉并簡述幾種常見的消息隊列&#xff08;MQ&#xff09;產品&#xff0c;比如RabbitMQ, Kafka, ActiveMQ, RocketMQ等。3.描述一下點對點&#xff08;PTP&#xff09;和發布/訂閱&#xff08;…

基于opencv的圖像拼接

利用Python的OpenCV庫實現了簡單的圖像拼接&#xff0c;示例 1. 圖像拼接的基本原理 圖像拼接主要包括以下幾個步驟&#xff1a; 特征檢測與匹配&#xff1a;首先&#xff0c;需要在待拼接的圖像之間找到匹配的關鍵點或特征。OpenCV提供了如SIFT、SURF、ORB等特征提取器以及…

嵌入式EMC之TVS管

整理一些網上摘抄的筆記&#xff1a; TVS管認識&#xff1a; TVS的Vc要比&#xff0c;DCDC的最大承受電壓要小

Flexbox布局詳解

Flexbox布局詳解&#xff1a;現代CSS布局的利器 在現代Web開發中&#xff0c;布局是一個至關重要的部分。傳統的布局方式&#xff0c;如浮動和定位&#xff0c;雖然可以實現復雜的布局&#xff0c;但往往需要大量的CSS代碼&#xff0c;并且在維護和擴展時容易出現問題。Flexbo…

web前端大作業--美團外賣1

文章目錄 概述代碼截圖代碼鏈接 概述 web美團 登錄和注冊功能、頁面展示。 代碼 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href&quo…

Vue組件生命周期深度剖析:從創建到銷毀的八大鉤子實戰指南

系列文章目錄 Vue核心指令解析&#xff1a;探索MVVM與數據操作之美 文章目錄 系列文章目錄前言一、Vue生命周期是什么&#xff1f;二、鉤子函數講解1. beforeCreate( 創建前 )2. created ( 創建后 &#xff09;3. beforeMount&#xff08;掛載前&#xff09;4. mounted&#xf…

Redis-數據類型-Geospatial(地理空間索引)

文章目錄 1、查看redis是否啟動2、通過客戶端連接redis3、切換到db5數據庫4、將地理位置信息&#xff08;經度和緯度&#xff09;添加到 Redis 的鍵&#xff08;key&#xff09;中4.1、添加大江商廈4.2、添加西部硅谷 5、升序返回有序集key&#xff0c;讓分數一起和值返回的結果…

簡約的服務器監控工具Ward

什么是 Ward &#xff1f; Ward 是一個簡單簡約的服務器監控工具。 Ward 支持自適應設計系統。此外&#xff0c;它還支持深色主題。它僅顯示主要信息&#xff0c;如果您想查看漂亮的儀表板而不是查看一堆數字和圖表&#xff0c;則可以使用它。 Ward 在所有流行的操作系統上都能…

nuxt框架常見配置選項(二)

nuxt.config.js 常見配置 module.exports {head: { title: Nuxt App, meta: [ { charset: utf-8 }, { name: viewport, content: widthdevice-width, initial-scale1 }, // 其他 meta 配置... ], link: [ { rel: icon, type: image/x-icon, href: /favicon.ico } //…