Time of Update: 2018-07-25
•在成員函數中,可以將this指標當參數傳遞,也可以返回this指標,或返回通過this指標拿到的對象 /* 成員變數是別的類的對象 */#include <iostream>using namespace std;//日期類class Date { int year,month,day;public: //構造方法 Date(){ cout << "Date() " <<
Time of Update: 2018-07-25
眾所周知,C中以八進位,十進位和十六進位都可以通過%d,%o和%x輕鬆實現,然而唯獨沒有提供二進位輸出的快速方式。博主整理出兩種簡單的實現方式,供參考。 方法一:itoa函數 itoa函數將數值轉換為字串,通過規定轉換進位實現。(還是用了C內建的代碼塊hh) #include<stdio.h>#include<stdlib.h>//注意必須調用stdlib.h函數庫int main(void){ int a=1000; char str[30];
Time of Update: 2018-07-25
十進位轉換為二進位,在數學上有很多種解法,可以每次除2後取餘數,可以減去2的n次冪,n遞減。不過在C語言中,有簡單巧妙的演算法。
Time of Update: 2018-07-25
一、枚舉類型是什麼,有什麼用 枚舉類型是由使用者定義的,由於表示一組有意義的元素值。 例如,已知系統所用顏色有藍色,紅色,黑色,綠色這幾種。所以就可以定義一個枚舉類型用來表示這幾種顏色,其中的各個枚舉成員代表藍色、紅色、黑色、綠色。 二、如何定義枚舉類型 在C++中,使用關鍵字enum來定義, enum 枚舉類型名{一系列枚舉值}; enum colors{blue,black,red,green};
Time of Update: 2018-07-25
一個很簡單的例子,使用c#調用tensorflow。 1.安裝tensorflow 首先需要安裝windows 版本的tensowflow,使用64位的python3.5,如果沒有安裝,需要首先安裝python3.5 然後以管理員方式進入命令列,運行 pip install tensorflow 2.c#調用代碼 初始化cle和python35
Time of Update: 2018-07-25
// 20101112.cpp : 定義控制台應用程式的進入點。 //使用訊號量實現線程同步 #include "stdafx.h" #include "windows.h" #include "iostream" using namespace std; int num=1; HANDLE hDemaphore; unsigned long _stdcall ThreadProc1(void
Time of Update: 2018-07-25
C#非同步委託(非同步方法呼叫調用)一:同步調用 : 程式順序執行時-->調用很耗時的[方法]-->阻塞當前線程-->[方法]調用完成-->繼續執行。非同步呼叫 : --------------------------------------------------------------------------------委託例子 : 自寫委託如下 : public delegate String MyDelegate(String name);
Time of Update: 2018-07-25
C#的事件 參考書籍: 《C#圖解教程》 事件這東西呢,其實就是觀察者模式。事件在很多架構裡面都有,例如Andriod,QT5(訊號槽),Cocos2d-x,Unity3d,一般的GUI如按鈕,編輯文本,等等都是用事件的原理來響應程式的。 發行者(publisher)和訂閱者(subscriber) 發行者(publisher),發布某個事件的類或結構。 訂閱者(subscriber),註冊在事件發生時得到通知的類或結構。
Time of Update: 2018-07-25
我通過對一個winform表單應用程式的不斷最佳化,來表現如何通過“委託” 和 “事件” 來降低模組的低耦合。 但是在這之前我們要明白,什麼是低耦合。 簡單的說就是兩個模組之間,如果一個模組中的一個類,需要執行個體化另一個模組中的一個類,然後調用方法,這樣這兩個模組就是綁在一輛戰車上,如果一個模組突然消失,會報錯,我們要做的就是將一個模組中要用的方法,加入到一個委託或事件中,等待其他模組來註冊,其他模組是否消失,與擁有委託或事件的模組無關。聽著還是很繞,上樣本。 /*--------
Time of Update: 2018-07-25
一、定義. 純虛函數是在基類中聲明的虛函數,它在基類中沒有定義,但要求任何衍生類別都要定義自己的實現方法。在基類中實現純虛函數的方法是在函數原型後加"=0"virtual void funtion1()=0二、引入原因:1、為了方便使用多態特性,我們常常需要在基類中定義虛擬函數。2、在很多情況下,基類本身產生對象是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身產生對象明顯不合常理。 &
Time of Update: 2018-07-25
C#中委託的理解(方便Java的童孩們理解) 定義:委託即Java中的抽象方法,是一個沒有實現的方法,沒有方法體。要在程式啟動並執行時候才知道它的具體啟動並執行是哪一部分代碼(這個定義是從Java角度理解的) 使用:1、定義委託(委託定義的傳回型別和形參要與指定的實現函數的傳回型別和形參一致)。文法格式如下: 修飾符
Time of Update: 2018-07-25
Gamasutra上有篇文章講得挺細的: Sponsored Feature: Behind the Mirror - Adding Reflection to C++ RTTI 在Class聲明後加入RTTI宏的做法幾乎快成各種引擎的標配了, 誰叫C++的rtti太弱來著. 之前只是認為自己實現RTTI的原因是dynamic_cast的效率不高和對象工廠的需要, 原來關掉這個編譯選項還可以減少佔用的記憶體 Field(
Time of Update: 2018-07-25
C++11 error: unable to find string literal operator 'operator" 一個簡單的宏 C++ #define LOG_INFORMATION(x, ...) LOG_ME("%s:%d, "x, __FUNCTION__,__LINE__, ##__VA_ARGS__)
Time of Update: 2018-07-25
來看看怎麼在C++中實現回調吧。 Method1:使用全域函數作為回調 在C語言中的回調很方便。當然,我們可以在C++中使用類似於C方式的回呼函數,也就是將全域函數定義為回呼函數,然後再供我們調用。 typedef void(*pCalledFun)(int *); void GetCallBack(pCalledFun parafun) { /*do something*/ }
Time of Update: 2018-07-25
在前面提到回調了,那麼現在就開始說委託吧。個人是這麼理解委託的,就是一件事你不做或者不能做或者不想做,那麼就委託給別人做,我只調用別人的函數介面就可以了,也就是我要實現一個功能,我只要介面,實際的實現委託給別人,突然有一天我要做的事的邏輯發生了變化,那麼我也不需要更改自己的調用,只需要被委託者更換一下邏輯就可以了。同時,如果在一定的場合下要調用很多相同形式的函數,那麼使用委託將很方便。
Time of Update: 2018-07-25
1、C#不支援多重繼承。 使用多重繼承可以使派生出來的類具有多重特性,使用緊湊的程式碼完成十分複雜的功能,但這樣不可避免的是代碼的調試和閱讀變得困難和煩雜。但是C#中支援介面Interface的多重繼承,在類中實現Interface中的介面函數就可以了。 2、在標準的C#中,不支援指標類型。
Time of Update: 2018-07-25
這個寫了蠻長時間的,主要是在想如何讓程式判斷不是一種排序後檢查是不是另一種排序,我想出的這個方法可能不是最優的,如果誰有更好的辦法,請留言告訴我。**僅給有需要的人以參考,如有錯誤請糾正我** #include<iostream>template<typename T>bool is_sorted(T arr[], int n){ T temp; int i; for (i = 0; i < n; i++)
Time of Update: 2018-07-25
書上的一道題目,魔方矩陣,一行的元素相加與一列的元素相加的和一樣大,對角線也一樣大一開始不會寫,百度也沒找到。。後來自己慢慢單步調試寫出來了。。。 **僅供有需要的人以參考,如有錯誤請糾正我** #include<iostream>using namespace std;int main(){ const int NUM = 5; if (NUM % 2 == 0) { cerr
Time of Update: 2018-07-25
賀老師的教學連結 本課講解 執行個體1:求出三角形的周長和面積 #include<iostream>#include<Cmath>#include<cstdlib>using namespace std;class Triangle{public: void setABC(double x, double y, double z);//置三邊的值,注意要能成三角形 double
Time of Update: 2018-07-25
#include<stdio.h> #include<math.h> double conv(char *string) { double ch[10]; int i = 0,j =0, count = 0; double num = 0; while(*(string+j) != '\0') { switch(*(string+j)) {