亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++ odr用法案例詳解

 更新時(shí)間:2021年09月13日 11:36:55   作者:會(huì)會(huì)會(huì)飛的魚  
這篇文章主要介紹了C++ odr用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
// 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上運(yùn)行的結(jié)果為:

2、使用clang進(jìn)行編譯

clang++ module1.cpp odr_test1.cpp

 運(yùn)行結(jié)果:

若進(jìn)行下面的編譯:

clang++ odr_test1.cpp module1.cpp

 則結(jié)果如下 

3、使用gcc編譯

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

 

若進(jìn)行如下編譯

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

二、如何解決這個(gè)問題

// 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;
}

運(yùn)行結(jié)果

 

到此這篇關(guān)于C++ odr用法案例詳解的文章就介紹到這了,更多相關(guān)C++ odr用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于OpenCv的運(yùn)動(dòng)物體檢測(cè)算法

    基于OpenCv的運(yùn)動(dòng)物體檢測(cè)算法

    這篇文章主要為大家詳細(xì)介紹了基于OpenCv的運(yùn)動(dòng)物體檢測(cè)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++ 學(xué)習(xí)之旅三 我和超級(jí)瑪麗有個(gè)約會(huì)

    C++ 學(xué)習(xí)之旅三 我和超級(jí)瑪麗有個(gè)約會(huì)

    學(xué)習(xí)了c++有一周有余了吧,感謝孫鑫老師的視頻教程,讓我   對(duì)C++有了基本的了解,并理解到C++與.net 的許許多多的區(qū)別,更要感謝網(wǎng)民為programaking的人,會(huì)為我提供了超級(jí)瑪麗制作揭秘 這套寶貴的教程,讓我 做做出了這個(gè)項(xiàng)目,對(duì)c++ 有了一個(gè)更深層次的認(rèn)識(shí)
    2012-11-11
  • OpenCV實(shí)現(xiàn)拼圖算法

    OpenCV實(shí)現(xiàn)拼圖算法

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)拼圖算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語(yǔ)言題目:有多少?gòu)堊雷?-并查集

    C語(yǔ)言題目:有多少?gòu)堊雷?-并查集

    并查集是一種用于管理分組的數(shù)據(jù)結(jié)構(gòu)。它具備兩個(gè)操作:(1)查詢?cè)豠和元素b是否為同一組 (2) 將元素a和b合并為同一組,需要的朋友可以參考下
    2021-09-09
  • 用C語(yǔ)言實(shí)現(xiàn)計(jì)算器功能

    用C語(yǔ)言實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了用C語(yǔ)言實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 詳解約瑟夫環(huán)問題及其相關(guān)的C語(yǔ)言算法實(shí)現(xiàn)

    詳解約瑟夫環(huán)問題及其相關(guān)的C語(yǔ)言算法實(shí)現(xiàn)

    這篇文章主要介紹了詳解約瑟夫環(huán)問題及其相關(guān)的C語(yǔ)言算法實(shí)現(xiàn),也是ACM當(dāng)中經(jīng)常會(huì)引用到的基礎(chǔ)題目,文中共介紹了三種C語(yǔ)言解答,需要的朋友可以參考下
    2015-08-08
  • C++空類及沒有成員變量的類的大小實(shí)例分析

    C++空類及沒有成員變量的類的大小實(shí)例分析

    這篇文章主要介紹了C++空類及沒有成員變量的類的大小,對(duì)于初學(xué)者更好的了解C++的指針及類的存儲(chǔ)結(jié)構(gòu)很有幫助,需要的朋友可以參考下
    2014-07-07
  • C++深入探究繼承的概念與使用

    C++深入探究繼承的概念與使用

    繼承是C++面向?qū)ο缶幊讨械囊婚T。繼承是子類繼承父類的特征和行為,或者是繼承父類得方法,使的子類具有父類得的特性和行為。重寫是子類對(duì)父類的允許訪問的方法實(shí)行的過(guò)程進(jìn)行重新編寫,返回值和形參都不能改變。就是對(duì)原本的父類進(jìn)行重新編寫,但是外部接口不能被重寫
    2022-05-05
  • 你不知道的C++中namespace和using的用法實(shí)例

    你不知道的C++中namespace和using的用法實(shí)例

    在C++語(yǔ)言編寫的程序中,變量和函數(shù)等的作用范圍是有一定限制的,下面這篇文章主要給大家介紹了一些你不知道的C++中namespace和using的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • c病毒程序原理分析(防范病毒 c語(yǔ)言小病毒示例)

    c病毒程序原理分析(防范病毒 c語(yǔ)言小病毒示例)

    這篇文章主要介紹了病毒程序原理,寫個(gè)小程序做演示,大家可以參考這個(gè)以防中相似C病毒
    2013-12-12

最新評(píng)論