
C++
_wjl_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 一句话实现是否为2的若干次幂的判断
#include"stdafx.h"#includeusing namespace std;/**一句话实现是否为2的若干次幂的判断当m中只有一位为1时,才为若干次幂若有两个集以上1,则(m&(m-1))不为0,输出0,表示不为2的若干次幂类比: x为2的若干次幂即表示x中1的位数为1,题目转化为求一个32位数中1的位数,如果为1,则表示该数为2的若干次幂 同理也可转载 2016-10-20 20:25:57 · 2717 阅读 · 0 评论 -
C++ 未捕获的异常
如果程序抛出的异常没有捕获,程序结束。可以对main()函数使用try/catch结构,以捕获所有未经处理的异常,如下所示:try{ main(argc,argv);}catch(...){ //}这一行为通常并非我们希望的。异常的要点在于给程序一个机会,来处理和修正不希望看到的或不曾预期的情况。即使无法处理特定的异常,也应该编写代码捕获这个异常,并输出恰当转载 2016-10-21 19:45:25 · 5971 阅读 · 1 评论 -
72 Android WebView AlertDialog
package com.example.android_webview_loaddata;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.app.AlertDialog;import android.content.Dia转载 2014-01-17 16:30:49 · 1162 阅读 · 0 评论 -
64 Android 抽屉效果 (Button)
activity_main.xml (布局文件)<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" andr转载 2014-01-16 11:50:33 · 2051 阅读 · 0 评论 -
65 Android ExpandableListView (QQ好友列表的实现)
activity_main.xml ( 布局文件代码)<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" a转载 2014-01-16 13:34:01 · 1086 阅读 · 0 评论 -
35.C++增1减1运算符的重载
//使用运算符“++”重载为类的成员函数#include class Number{public: Number(int n=0)//构造函数 { num=n; } int operator++();//前置++n Number operator++(int );//后置n++ void print() {转载 2013-11-29 15:23:02 · 1105 阅读 · 0 评论 -
32.C++ 运算符的重载
//运算符的重载/* 运算符的重载通常是类的成员函数或者是类的友元函数,运算符的操作数通常是该类的对象 运算符重载的成员函数的格式: 函数类型 operator 运算符(形参列表) { 函数体 } 运算符重载的友元函数的格式: friend 函数类型 operator 运算符(形参列表) { 函数体 } 其中: 函数类型表示函数返回值的类型; 函数名是oper转载 2013-11-29 09:19:26 · 667 阅读 · 0 评论 -
34.C++插入符和提取符运算符的重载
//以下代码mac xcode/* 插入符“>”的重载,可以方便用户利用标准的输入输出流来实现用定义的 对象输入和输出。 操作符的左边是流对象的别名而不是被操作的对象 插入符的重载的一般格式: ostream& operator<<(ostream & output,类名& 对象名) { ...//函数代码 return output; } 提取符重载的一般格转载 2013-11-29 10:33:07 · 2125 阅读 · 0 评论 -
33.C++赋值运算符的重载
//赋值运算符实例#include #include class Assignment{public: Assignment(char *s);//构造函数 Assignment& operator=(Assignment &x);//使用对象引用的重载赋值运算符 Assignment& operator=(char *s);//使用指针的重载赋值运算符转载 2013-11-29 09:51:13 · 763 阅读 · 0 评论 -
28.C++类的多重继承——二义性
/* 二义性: 使用作用域限定符::来标识不同基类的成员的唯一性,防止二义性产生 */#include class D{public: int n; D(int newN=100)//构造函数 { n=newN; }};class B:public D{public: int nb; B(int newN=1转载 2013-11-21 16:09:35 · 1031 阅读 · 0 评论 -
31.C++纯虚函数与抽象类
/* C++许在基类中定义虚函数时,不定义虚函数的函数体,这样的虚函数称为纯虚函数。 纯虚函数不执行具体操,也不能被调用,只提供一个与派生类相一致的接口。 纯虚函数一般声明格式: virtual 函数类型 函数名(形参表)=0; *///纯虚函数和抽象类的应用#include const double PI=3.1415926;class shape{public:转载 2013-11-21 17:02:54 · 945 阅读 · 0 评论 -
30.C++类的多态性——虚函数
/* 类的多态性 ——多态性是同一个操作被不同类型的对象接受时导致不同的行为。 C++有两种多态性: ——编译时多态性(通过重载机制来实现的) ——运行时多态性(通过虚函数来实现) *//* 虚函数: */#include class DisplayA //定义基类A{public: void output() { std::cout<转载 2013-11-21 16:38:54 · 921 阅读 · 0 评论 -
C++ 抛出列表
C++的旧版本允许指定函数或者方法可以抛出的异常,这个规范叫做抛出列表(throw list)或者异常规范(exception specification)。自C++11之后,废弃了这些抛出列表。但这里仍解释其语法,因为可能在已有的代码体中遇到它们。下面给出前面示例中的readIntegerFile()函数,现在这个函数具有恰当的抛出列表:void readIntegerFile(const转载 2016-10-22 15:59:40 · 452 阅读 · 0 评论 -
C++ 编写自己的异常类
编写自己的异常类有两个好处:1)C++标准库中的异常数目有限,可以在程序中为特定的错误创建更有意义的类名称,而不是使用具有通常名称的异常类,例如runtime_error2)可以在异常中加入自己的信息,而标准层次结构中的异常只允许设置错误字符串。例如或许想在异常中传递不同的信息。示例为文件错误定义自己的错误层次结构,从一个泛型类FileError开始:#pragma once#i转载 2016-10-22 17:43:04 · 2945 阅读 · 0 评论 -
C++ 抛出并捕获多个异常
// Project20161020.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#include#includeusing namespace std;/**抛出并捕获多个异常*/void readIntegerFile(const string& fileName, vector &转载 2016-10-20 15:36:57 · 7221 阅读 · 0 评论 -
C++ 异常类型
#include "stdafx.h"#include#include#include#include#includeusing namespace std;/** 异常类型 异常未必是对象,也可以抛出一个简单的int*/void readIntegerFile(const string& fileName,vector& dest){ ifstream istr原创 2016-10-19 20:40:29 · 1093 阅读 · 0 评论 -
C++ 异常处理-2
#include "stdafx.h"#include#include#include#include#includeusing namespace std;/**文件打开失败问题代码抛出一个std::exception类型的异常,这个类型需要包含头文件。如果文件打开失败就会抛出 Unable to open file XXX 行*/void readIntegerFil原创 2016-10-19 20:09:59 · 652 阅读 · 0 评论 -
C++ 异常处理-1
C错误处理标准使用函数返回的整数代码和errno宏表示错误,许多C++程序也采用可这种方法。每个线程都具有自己的errno值。Errno值用作线程局部整数变量,被调用函数使用这个变量将发生的错误告诉调用函数。l 抛出异常并捕获异常:使用异常要在程序中包括两个部分:处理异常的try’/catch结构和抛出异常的throw语句。演示异常处理最简单的示例是避免除0。这个示例抛出一个inval原创 2016-10-19 19:32:15 · 644 阅读 · 0 评论 -
C++ 函数模板
#include"stdafx.h"#includeusing namespace std;/**函数模板一个通用函数模板,该函数在数组中查找一个值并返回这个值得索引。*/static const size_t NOT_FOUND = (size_t)(-1);template size_t Find(T& value, T* arr, size_t size){ for转载 2016-10-26 19:25:12 · 458 阅读 · 0 评论 -
C++ 方法模板
C++允许模板化类中的单个方法。这些方法可以在类模板中,也可以在非模板化的类中。在编写模板化的类方法时,实际在为很多不同的类型编写很多不同版本的方法。在类模板中,方法模板对赋值运算符和复制构造函数非常有用 注意:不能用方法模板编写虚方法和析构函数 考虑最早只有一个模板参数——元素类型——的Grid模板。 Grid myIntGrid; Grid myDoube转载 2016-10-26 14:43:06 · 1124 阅读 · 0 评论 -
C++ 编译器处理模板的原理
编译器遇到模板方法定义时,会进行语法检查,但是并不编译模板。编译器无法编译模板定义,因为它不知道使用什么类型。不知道x和y的类型,编译器就无法为x=y这样的语句生成代码。编译器遇到一个实例化的模板时,例如GridmyIntGrid,就会将模板定义中的每一个T替换为int,从而生成Grid模板的int版本代码。当编译器遇到这个模板另一个实例时,例如,Grid mySpreadsheet,就为Sp转载 2016-10-26 10:19:43 · 6243 阅读 · 0 评论 -
C++ 模板
C++不仅提供了面向对象程序设计的语言支持,还提供了泛型编程(generic programming)的语言支持。泛型编程的目的是编写可重用的代码。在C++中,泛型编程的基本工具是模板。1.编写不使用模板的代码GamePiece基类添加虚方法clone()。GamePiece基类接口如下:#pragma once#includeclass GamePiece{virtual s转载 2016-10-25 18:13:50 · 481 阅读 · 0 评论 -
C++ 标准库概述
C++标准库,顾名思义,这个库是C++标准的一部分,任何符合标准的编译器都应该带有这个库。标准库并不是一体性的库,而是包含了一些完全不同的组件。所有标准库类和函数都在std名称空间中声明。C++标准库的核心是泛型容器和泛型算法。库中的这一子集常称为标准模板库(Standard Template Library,STL),因为这一部分大量使用了模板。STL的目标是要让STL容器和算法和手转载 2016-10-24 10:39:58 · 695 阅读 · 0 评论 -
C++ 异常—常见的错误处理问题
内存分配错误 如果无法分配内存,new和new[]的默认行为是抛出bad_alloc类型的异常,这个类型在头文件中定义。代码应该捕捉这些异常,并正确处理异常。 不可能把对new和new[]的调用都放在try/catch中,但至少在分配大块内存时应这么做。下面示例演示了如何捕获内存分配异常:try{ Ptr=new int[ numInts];} catch(co转载 2016-10-23 21:20:36 · 1877 阅读 · 0 评论 -
C++ 异常—堆栈的释放与清理
当某段代码抛出一个异常时,会在堆栈中寻找catch处理程序。Catch处理程序可以是在堆栈执行的0个或者多个函数调用。当发现一个catch时,堆栈会释放所有中间堆栈帧,直接跳到定义catch处理程序的堆栈层。堆栈释放(stack unwinding)意味着调用所有具有局部作用域的名称的析构函数,并忽略在当前执行点之前的每个函数中所有的代码。 然而当堆栈释放时,并不释放指针变量,转载 2016-10-23 08:05:46 · 6674 阅读 · 0 评论 -
C++ 嵌套异常
当处理第一个异常时,可能会触发第二种异常情况,从而要求抛出第二个异常。遗憾的是,当抛出第二个异常时,正在处理的第一个异常的所有信息都会丢失。C++用嵌套异常(nested exception)的概念提供了解决这一问题的方案,嵌套异常允许将捕获的异常嵌套到新的异常环境。使用std::throw_nested()可以抛出嵌套了异常的异常。第二个异常的catch处理程序可以使用dynamic_cast访转载 2016-10-22 20:16:04 · 3487 阅读 · 0 评论 -
27.C++多继承
/* 多继承 定义格式: class 派生类名:继承方式 基类名1,派生方式 基类名2,... { 派生类新成员; }; */#include #include class department//定义部门类{public: int num;//编号 char design[10];//名称 department(int n,char d[]);转载 2013-11-21 15:40:33 · 819 阅读 · 0 评论 -
26.C++类的继承与派生
/* 单继承: 如果只得到一个基类的遗传信息称为单继承; 如果得到多个基类的遗传信息称为多继承。 单继承是指从一个基类派生一个或多个派生类, 单继承派生类的定义格式如下: class 派生类名:继承方式 基类名 { 派生类的新成员 }; 继承方式: ——公有继承(public) ——私有继承(private) ——保护继承(protected) 如果没有明确指明继原创 2013-11-21 14:06:46 · 918 阅读 · 0 评论 -
12.C++ 带默认参数的函数
#include int area(int a=5, int b=8){ int area=a*b; return area;}int main(int argc, const char * argv[]){ int x,y,s1,s2,s3; std::cout<<"请输入两个数"<<std::endl; std::cin>>x>>y;转载 2013-11-18 21:19:37 · 1144 阅读 · 0 评论 -
11.C++ 内联函数
/* 将功能简单、规模较小且使用频繁的函数,设置成内联函数 一般格式 ——inline 类型说明符 被调函数名(形参列表) *///用内联函数求三角形面积#include #include inline double area(double L, double W, double H)//定义内联函数{ double a=0.5*(L + H +W); dou转载 2013-11-18 21:08:38 · 1358 阅读 · 0 评论 -
10.C++ 文件流 Mac
文件的输出流的应用#include #include int main(int argc, const char * argv[]){ //文件的读写 char str[100]; std::ofstream myFileOut("/Users/x/Desktop/test.txt",std::ios::out);//创建输出流对象 if (myFil转载 2013-11-18 14:01:16 · 3346 阅读 · 0 评论 -
7.C++ 数组
#include int main(int argc, const char * argv[]){ //一维数组 int array[4]={65,2,45,3};//初始化数组 std::cout<<array[2]<<std::endl;// 访问数组元素 45 int a[5]={};//有的资料 指出这种错误 求 ? std::cout<<a原创 2013-11-17 21:19:42 · 1054 阅读 · 0 评论 -
C++ C语言与C++区别
C语言与C++区别语言 输入输出头文件 输出流cout 输入流cinC++ iostrea.h “>”提取符C Stdio.h Printf() scanf()C++系统预定义的标准流对象流对象名 含义 缺省设备cin 标准输入 键盘cout 标准输出 显示器ceer 标准错误输出 显示器clog Ceer的缓冲形式 显示器转载 2013-11-18 09:55:35 · 1242 阅读 · 0 评论 -
4.C++ 简单运算表达式
//运算表达式#include int main(int argc, const char * argv[]){ //自增、自减运算 int a=3; int b=a++; std::cout<<"b="<<b<<std::endl;//3 std::cout<<"a="<<a<<std::endl;//4 int c=++++b原创 2013-11-17 19:50:24 · 1188 阅读 · 0 评论 -
5.C++ 辗转相处法求最大公约数和最小公倍数
以下参考辗转相处法百度百科:#include //辗转相除法求最大公约数int MaxNumber(int a, int b){ int temp; if (a<b) { temp=a; a=b; b=temp; } if (a%b==0) { return b; } els原创 2013-11-17 20:20:18 · 1785 阅读 · 0 评论 -
9.C++ 不同进制的输出 & 输入输出操作的成员函数
//Mac 系统//不同进制的输出#include int main(int argc, const char * argv[]){ int num; std::cout<<"请输入一个数:"<<std::endl; std::cin>>num; std::cout<<"八进制数:"<<std::oct<<num<<std::endl; std:原创 2013-11-18 12:42:42 · 1587 阅读 · 0 评论 -
8.C++ 程序的基本结构
#include class RectArea //声明一个名为 RectArea 的类{private: //私有类型数据成员 int Length,Width;public: //共有类型函数成员 void input(int a, int b) { Length= a; Width=b; } v原创 2013-11-18 09:43:28 · 1142 阅读 · 0 评论 -
6.C++ 程序的流程控制
#include int main(int argc, const char * argv[]){ //if语句 //swith语句 int a; std::cout<<"请输入密码"<<std::endl; std::cin>>a; switch (a) { case 1001: std::cout<原创 2013-11-17 20:51:47 · 1010 阅读 · 0 评论 -
3.C++ 数据类型
//数据类型#include int main(int argc, const char * argv[]){ //八进制整数:以零开始 int bNum=0123;//signed int int bNum2=016L;//unsigned long int std::cout<<bNum<<"\n";//输出83 std::cout<<bNum原创 2013-11-17 19:23:49 · 952 阅读 · 0 评论 -
C++ 简单函数
#include #include double max(double x, double y)//自定义函数{ if (x>y) { return x; } else { return y; }}int main(int argc, const char * argv[]){ double a,b,原创 2013-11-17 12:09:55 · 1336 阅读 · 1 评论