C++一些細節
/*#include<iostream>
#include"pthread.h"
using namespace std;
static pthread_mutex_t* mutex;
class Single;
class Single
{
private:
Single() {};
public:
static Single* instance;
static Single* getInstance()
{
if (instance == NULL)
{
pthread_mutex_lock(mutex);
if (instance == NULL)
{
instance = new Single();
}
pthread_mutex_unlock(mutex);
}
else
{
cout << "資源已被佔用" << endl;
}
return instance;
}
void display()
{
cout << "單例模式" << endl;
}
};
Single* Single::instance = NULL;
int main()
{
pthread_mutex_init(mutex, NULL);
Single* sing = Single::getInstance();
sing->display();
Single* s = Single::getInstance();
s->display();
system("pause");
}
class Parent
{
public:
virtual void foo1(){}
virtual void foo2(){}
virtual foo3();
};
class Child1 :public Parent
{
public:
void foo1(){}
void foo3();
};
class Child2 :public Parent
{
void foo1(){}
void foo2(){}
void foo3();
};
虛擬函式表的相關概念,定義的三個類中三個函式的記憶體地址是不同的,表現除了虛擬函式具有多型性和繼承性的特點。
*/
/*
//建構函式呼叫虛擬函式
#include<iostream>
using namespace std;
class A
{
A() { doSth(); }
virtual void doSth()
{
printf("I an A");
}
};
class B :public A
{
public:
virtual void doSth()
{
printf("I am B");
}
};
int main()
{
A c;
system("pause");
}
*/
/*
#include<iostream>
#include<string>
using namespace std;
class Test
{
public:
char* buf;
Test(void)
{
buf = NULL;
}
Test(const char* str)
{
buf = new char[strlen(str) + 1];
strcpy(buf, str);
}
Test(Test& test) //如果不新增此複製建構函式,t1的buf和t2的buf指向相同的堆記憶體,為淺複製,加入此複製建構函式,為物件創造了新的記憶體,指向不同的地址。
{
buf = new char[strlen(test.buf) + 1];
strcpy(buf, test.buf);
}
~Test()
{
if (buf != NULL)
{
delete buf;
buf = NULL;
}
}
};
int main()
{
Test t1("hello");
Test t2 = t1;
cout << "(t1.buf==t2.buf)?" << (t1.buf == t2.buf) ? "yes" : "no";
system("pause");
}
*/
/*
#include<iostream>
using namespace std;
class Base
{
int i;
public:
Base() :i(0) { cout << "Base()" << endl; }
Base(int n) :i(n) { cout << "Base(int)" << endl; }
Base(const Base& b) :i(b.i)
{
cout << "Base(Base&)" << endl;
}
};
class Derverd :public Base
{
int j;
public:
Derverd() :Base(0), j(0) { cout << "Deriverd()" << endl; }
Derverd(int m, int n) :Base(m), j(0) { cout << "Derverd(int)" << endl; }
Derverd(Derverd &obj) :Base(obj), j(obj.j)
{
cout << "Deriverd(Deriverd&)" << endl;
}
};
int main()
{
Base b(1);
Derverd obj(2, 3);
Derverd d = obj;
system("pause");
}
*/
相關推薦
C++一些細節
/*#include<iostream> #include"pthread.h" using namespace std; static pthread_mutex_t* mutex; class Single; class Single {
C#中關於WebBrowser的一些細節設置
res 處理 logs window 人的 toolbar 基本 快捷 eww 在winform中有一個控件可以顯示html的內容,該控件就是webbrowser,設置它的DocumenText屬性為HTML的內容即可。 在使用WebBrowser做UI的時候,我們
一些細節(C++黑科技,模板)
priority_queue 最常用的當然是在dij的時候. #include <queue> struct node { int x, dis; bool operator < (const node a) const { return a
C---檔案操作的一些細節問題
C語言中對檔案進行操作必須開啟檔案,開啟檔案主要涉及到fopen函式。 fopen函式的原型為: FILE* fopen(const char *path,const char *mode) 其中path為檔案路徑,mode為開啟方式 1)對於檔案路徑,只需注意若未明確
關於C++在編碼時的一些細節
函式不能依賴於filescope物件,否則會造成重用困難 預設引數右側的引數也必須為預設 定義(函式定義,類定義)只能有一個,否則編譯時沒有問題,link時報有多個定義 宣告 (變數,函式名)只能有一個,否則編譯時會報symbol redefine inline是在編
C++類中的一些細節(過載、重寫、覆蓋、隱藏,建構函式、解構函式、拷貝建構函式、賦值函式在繼承時的一些問題)
1 函式的過載、重寫(重定義)、函式覆蓋及隱藏 其實函式過載與函式重寫、函式覆蓋和函式隱藏不是一個層面上的概念。前者是同一個類內,或者同一個函式作用域內,同名不同引數列表的函式之間的關係。而後三者是基類和派生類函式不同情況下的關係。 1.1 函式過載
getchar()函式的詳解以及使用時需要注意的一些細節-C語言基礎
這篇文章要探討的是“getchar()函式的詳解以及使用時需要注意的一些細節”。涉及getchar()函式的應用和需要注意的問題。屬於C語言基礎篇(持續更新)。 在C語言的學習過程中,我們常常需要接收鍵盤的輸入,在接收鍵盤輸入的過程中涉及到的函式通常有三個getchar()
C語言學習(四)在學習C語言時遇到的一些細節方面的問題
strlen與sizeof的區別: strlen用來求字串的長度用的(不算最後的NULL)而sizeof是用來求指定變數或者變數型別等所佔記憶體大小用的比如strlen("nihao")它的結果是5而sizeof(int)它的結果是4也就是說int型佔四個位元組。它與是不是
記錄一些細節
.com 真的是 真的 array data blog width 。。 失敗 1.Thinkphp的distinct(field)查詢數據庫用作查詢去重時,如果後面加上order則是對distinct檢索出來的結果進行排序,而不是先排序再distinct去重,曾經想通過o
【react學習】關於react框架使用的一些細節要點的思考
through 私有變量 col 層級 -1 turn ech react 子函數 ( _(:3 」∠)_給園友們提個建議,無論是API文檔還是書籍,一定要多看幾遍!特別是隔一段時間後,會有意想不到的收獲的) 這篇文章主要是寫關於學習react中的一些自己的思考: 1.se
程序員之---C語言細節12(指針和數組細節,"//"的可移植性說明)
[1] watermark popu i++ gravity 移植 char dsm 指針 主要內容:指針和數組細節,"//"的可移植性說明 #include <stdio.h> int main(int argc, char
C# 一些學習作業
說明 下載地址 客戶 添加 動畫 編譯 判斷 管理後臺 第一個 下載地址:http://pan.baidu.com/s/1dEGCJdf 包括: 實現QQ旋轉窗體功能 非“按角度旋轉”,實現的是立體旋轉。 實現QQ旋轉窗體功能,窗口為不規則圖像,打開時旋轉180度展示。 原
java類的繼承的一些細節
翻譯 關鍵字 當前 fault args 消失 構造 子類 繼續 類的繼承是java面向對象體系的一個重要方面(封裝、繼承、多態),對於java類的繼承,需要註意如下細節。 1.構造函數。 如果一個類沒有任何構造函數,系統會默認分配一個無參的構造函數給它,這個構
權限模塊_使用權限_顯示有權限的鏈接_思路分析_攔截驗證每個請求的權限_完善權限的分類_一些細節
sca tomcat jsp getname stack string struts2 ava stand 權限模塊__使用權限__顯示有權限的鏈接1__思路分析 實現功能 導入源文件,找到AnchorTag.java類復制到工程中 AnchorTag.java pa
SQL SERVER中隱式轉換的一些細節淺析
開發 tle ima 我們 rom spa 都是 date 分享 原文:SQL SERVER中隱式轉換的一些細節淺析其實這是一篇沒有技術含量的文章,精通SQL優化的請繞道。這個緣起於在優化一個SQL過程中,同事問了我一個問題,為什麽SQL中存在隱式轉換,但是執行計劃沒有變?
ptmalloc一些細節流程
保存 lai sorted top none 如果 global 釋放 -c chunk 容器 Bins ptmalloc統一管理heap和mmap區的chunk,避免了頻繁的系統調用,一共維護了128個bin,使用數組來存儲,所有的bin都是雙向鏈表。
一些細節記錄
存在 OS set 直接 分布式 div blog 命令 log Redis 的分布式鎖實現。Redis 的分布式鎖都是基於一個命令 -- SETNX,也就是 SET IF NOT EXIST,如果不存在就寫入。 從 Redis 2.6.12 版本開始,Redis 的 S
05——wepy框架中的一些細節
失敗 while || 檢查 ces LV rand apply eject 1.wepy組件的編譯 wepy中使用一個組件時候,需要先引用(import)。再在需要使用該組件的頁面(或組件)中聲明。例如: import Counter from ‘/path/to/Co
idea創建maven web項目需要註意的一些細節
目錄結構 工程 成了 exp files 需要 png pen 項目 在idea中構建maven java web項目,從new project到選擇maven骨架到最後finish完成,整個流程完成後,項目基本結構已經出來,但是距一個可以正常開發運行的web項目還有一些距
Servlet的一些細節--學習筆記
Servlet的一些細節--學習筆記Servlet細節1)瀏覽器訪問的url-pattern只是一個符合格式的任意字符串,以/開頭2)一個Servlet的url-pattern可以是1個或多個,有二種形式;a).xxb)/xx/註意:/不能一起直接使用3)/和.do的映射關系,.do最後4)程序員編寫的Ser