乙個C 的有意思的例子

2022-03-13 17:01:18 字數 1337 閱讀 1720

最近為了學習qt,重新學習c++,拿起了厚厚的《c++ primer plus(第6版)》

第12章:類與動態記憶體分配

stringbad.h

#pragma once#include 

class

stringbad

;

strngbad.cpp

#include "

strngbad.h

"#include

using

std::cout;

int stringbad::num_strings = 0

;stringbad::stringbad(

const

char*s)

stringbad::stringbad()

stringbad::~stringbad()

std::ostream& operator

<

/*stringbad& stringbad::operator=(const stringbad& st)

stringbad::stringbad(const stringbad& st)

*/

strngbad.cpp

看似沒有問題的類定義,如下測試

#include #include 

#include

"stock.h

"#include

"strngbad.h

"void callme1(stringbad&);

void

callme2(stringbad);

int stonetolb(int

st)

using

std::cout;

intmain()

cout

<< "

end of main()\n";

return0;

}void callme1(stringbad&rsb)

void

callme2(stringbad rsb)

main.cpp

結果,又是負數,又是亂碼。以下是我的vs.net2019的執行結果,因為是異常退出,且輸出的結果有時會少了一行,所以以下截圖看不到-1的結果

上面的**你會發現我注釋了部分**,恢復後,你會發現程式死得更早。因為在賦值函式如此建立的陣列

str = new char(len + 1);

而如此delete

delete str;

乙個有意思的問題

a b這個表示式如何理解?應該理解成a b還是a b,還是a b呢?應該按第一種方式理解。編譯的過程分為詞法解析和 語法解析兩個階段,在詞法解析階段,編譯器總是從前到後找最長的合法token。把這個表 達式從前到後解析,變數名a是乙個token,a後 面有兩個以上的 號,在c語言中乙個 號是合法的t...

乙個有意思的問題

最近做乙個交通管理系統,其中有個使用者投票功能。設想是直接開發乙個自定義的控制項。完成顯示,投票,ip檢索等全部功能。然而卻遇到乙個有意思的問題。具體來說就說,因為是用radiobuttonlist顯示的資料,在用radiobuttonlist.value捕獲使用者輸入時卻發現取出的索引始終為0.即...

乙個有意思的正則

在乙個框架中偶然發現一段比較有意思的正則,到現在還沒完全搞懂,先記錄下 1 3 str string 4 第乙個引數為正則 是左右定界符,就代表每個字串都匹配 5 preg split no empty 不返回空的 6 第 個引數 代表分割多少個陣列 7 chars preg split str,1...