溫馨提示×

C++友元函數能是模板函數嗎

c++
小樊
109
2024-11-09 01:01:30
欄目: 編程語言

在C++中,友元函數可以聲明為模板函數。友元函數是一種特殊的函數,它可以訪問類的私有和保護成員。模板函數是一種泛型函數,它可以根據不同的類型參數生成相應的函數實例。

以下是一個C++友元模板函數的示例:

#include <iostream>

class MyClass {
public:
    MyClass(int value) : value_(value) {}

    template <typename T>
    friend void printValue(const MyClass& obj);

private:
    int value_;
};

template <typename T>
void printValue(const MyClass& obj) {
    std::cout << "Value: " << obj.value_ << std::endl;
}

int main() {
    MyClass obj(42);
    printValue<int>(obj); // 使用int類型參數調用模板友元函數
    printValue<double>(obj); // 使用double類型參數調用模板友元函數
    return 0;
}

在這個示例中,我們定義了一個名為MyClass的類,它包含一個私有成員變量value_。我們還定義了一個模板友元函數printValue,它可以訪問MyClass的私有成員value_。在main函數中,我們創建了兩個不同類型的參數(intdouble),并使用它們分別調用模板友元函數printValue。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女