亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中odr怎么用

發布時間:2021-09-13 12:47:55 來源:億速云 閱讀:146 作者:小新 欄目:開發技術

這篇文章主要介紹了C++中odr怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

// The main module. File: odr_test1.cpp 
 
#include <iostream>
 
void module1_print(); // declaration of an exeternal function
 
inline int f1()
{
	return 4;
}
 
class A
{
public:
	static double f()
	{
		return 4.1;
	}
};
 
const double C = 4.2;
 
constexpr double E = 4.5;
 
void print()
{
	std::cout << "main f1(): " << f1() << std::endl;
	std::cout << "main A::f(): " << A::f() << std::endl;
	std::cout << "main C: " << C << std::endl;
	std::cout << "main E: " << E << std::endl;
}
 
int main()
{
	module1_print();
	print();
 
	int i;
	std::cin >> i;	
}
// File: module1.cpp
 
#include <iostream>
 
inline int f1()
{
	return 3;
}
 
class A
{
public:
	static double f()
	{
		return 3.1;
	}
};
 
const double C = 3.2;
 
constexpr double E = 3.5;
 
void module1_print()
{
	std::cout << "module1 f1(): " << f1() << std::endl;
	std::cout << "module1 A::f(): " << A::f() << std::endl;
	std::cout << "module1 C: " << C << std::endl;
	std::cout << "module1 E: " << E << std::endl;
}

1、在VS2017上運行的結果為:

C++中odr怎么用

2、使用clang進行編譯

clang++ module1.cpp odr_test1.cpp

 運行結果:

C++中odr怎么用

若進行下面的編譯:

clang++ odr_test1.cpp module1.cpp

 則結果如下 

C++中odr怎么用

3、使用gcc編譯

g++ module1.cpp odr_test1.cpp -std=c++11

 C++中odr怎么用

若進行如下編譯

g++ odr_test1.cpp module1.cpp -std=c++11

C++中odr怎么用

二、如何解決這個問題

// The main module. File: odr_test2.cpp
#include <iostream>
void module2_print(); // declaration of an external function
 
namespace
{
inline int f1()
{
return 4;
}
 
class A
{
public:
static double f()
{
return 4.1;
}
};
}
 
const double C = 4.2;
constexpr double E = 4.5;
 
void print()
{
std::cout << "main f1(): " << f1() << std::endl;
std::cout << "main A::f(): " << A::f() << std::endl;
std::cout << "main C: " << C << std::endl;
std::cout << "main E: " << E << std::endl;
}
 
int main()
{
module2_print();
print();
 
int i;
std::cin >> i;
}
// File: module2.cpp
 
#include <iostream>
 
namespace
{
inline int f1()
{
return 3;
}
 
class A
{
public:
static double f()
{
return 3.1;
}
};
}
 
const double C = 3.2;
constexpr double E = 3.5;
 
void module2_print()
{
std::cout << "module2 f1(): " << f1() << std::endl;
std::cout << "module2 A::f(): " << A::f() << std::endl;
std::cout << "module2 C: " << C << std::endl;
std::cout << "module2 E: " << E << std::endl;
}

運行結果

 C++中odr怎么用

感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++中odr怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

连州市| 满城县| 阳泉市| 天台县| 探索| 察哈| 汉源县| 海林市| 龙川县| SHOW| 鸡东县| 望谟县| 鹿泉市| 桐庐县| 九龙坡区| 精河县| 阜新市| 苏尼特左旗| 吴旗县| 横山县| 贵德县| 德阳市| 泸定县| 桂东县| 洮南市| 崇仁县| 松原市| 绿春县| 信阳市| 大余县| 黄骅市| 蒲江县| 西盟| 莱阳市| 麻江县| 万年县| 安龙县| 阜城县| 胶州市| 陕西省| 木里|