C++ 关于bool函数的一个小问题

问题描述

C++ 关于bool函数的一个小问题

/*我写的这个程序是可以运行的,但我不清楚我写的bool函数是否符合题意,因为输入不符值后输出的是三串长长的数字...麻烦大神们帮我看一下需不需要改正~可以的话,可以详细讲讲bool函数的作用和用法吗?对这个函数还是不太熟悉...*/

    class CDate{    public:            bool set(unsigned int yearunsigned int monthunsigned day);            void print();    private:            unsigned int m_nYear;            unsigned int m_nMonth;            unsigned int m_nDay;    };    bool CDate::set(unsigned int yearunsigned int monthunsigned day)    {            if((month>12)||(day>31))                    return false;            else            m_nYear=year;            m_nMonth=month;            m_nDay=day;            return true;    }    void CDate::print()    {            cout<<m_nYear<<"" ""<<m_nMonth<<"" ""<<m_nDay;    }    int main(int argc char* argv[])    {            CDate today;            today.set(20164419);            today.print();        system(""pause"");            return 0;    }

解决方案

1.输出一串很长的数是因为你没有初始化过,帮楼主加了一个构造函数
2.set函数里else分支应该加上括号,虽然加不加结果是一样的
3.既然set有返回值,就应该在main函数里接收该返回值,并且对于不同的返回值进行一些相应的处理
4.bool参考:http://www.cnblogs.com/JarvisChu/archive/2011/07/03/2752472.html

#include<iostream>using namespace std;class CDate{public:    CDate():m_nYear(0)m_nMonth(0)m_nDay(0){}    bool set(unsigned int yearunsigned int monthunsigned day);    void print();private:    unsigned int m_nYear;    unsigned int m_nMonth;    unsigned int m_nDay;};bool CDate::set(unsigned int yearunsigned int monthunsigned day){    if((month>12)||(day>31))        return false;    else    {        m_nYear=year;        m_nMonth=month;        m_nDay=day;    }    return true;}void CDate::print(){    cout<<m_nYear<<"" ""<<m_nMonth<<"" ""<<m_nDay;}int main(int argc char* argv[]){    CDate today;    bool set_res = today.set(20164419);    if(!set_res)        cout << ""set error"" << endl;    today.print();    system(""pause"");    return 0;}

解决方案二:
关于C++当中的函数作为另一个函数的参数之小问题
函数重载的一个小问题

时间: 2024-10-11 18:51:08

C++ 关于bool函数的一个小问题的相关文章

php反序列unserialize的一个小特性

这几天wordpress的那个反序列漏洞比较火,具体漏洞我就不做分析了,看这篇吧http://drops.wooyun.org/papers/596,你也可以去看英文的原文http://vagosec.org/2013/09/wordpress-php-object-injection/. wp官网打了补丁,我试图去bypass补丁,但让我自以为成功的时候,发现我天真了,并没有成功绕过wp的补丁,但却发现了unserialize的一个小特性,在此和大家分享一下.   1.unserialize(

c++-二叉树搜索的问题,以及一个小bug

问题描述 二叉树搜索的问题,以及一个小bug #include<iostream> #include<string> using namespace std; class node{ public: string name; string keyword; node* left; node* right; node(string a = "0", string b = "0", node* c = 0, node* d = 0) : name

c++-C++,书店的一个小程序,有错误

问题描述 C++,书店的一个小程序,有错误 #include #include using namespace std; class Sales_data { friend std::istream& operator>>(std::istream&, Sales_data&); friend std::ostream& operator<<(std::ostream&, const Sales_data&); friend bool

js浏览器-javascript中的一个小问题(浏览器问题)

问题描述 javascript中的一个小问题(浏览器问题) 求助 javascript中的一个小问题< html> <head> <title>Ajax 简单的服务器请求 <script type=""text/javascript""> var xmlobj; function CreateXMLHttpRequest() { if(window.ActiveXObject) //如果当前浏览器支持ActiveXOb

excel通过VLOOKUP函数从一个表中取数到另一个表

  Excel表格处理数据的功能很强大,工作中,经常需要从数据库文件中查找索引数据到另一个文件中,如何实现这个引用?通过VLOOKUP函数,就可以轻松做到. VLOOKUP函数是一个纵向查找函数,用于按列进行查找索引数据.我们根据需求,进行设定就能快速完成. 步骤 打开电脑,点开Excel,打开数据库文件和需要引用数据的文件. 现以一份电子账册的料件为例:企业在海关备案了552个不同的商品,这552个"商品名称"有"备案序号",另一份料件表文件只有"备案序

用VB.net制作一个小程序(2)

程序 用VB.net制作一个小程序(2)----制作"Lucky7"程序作者:高山 它是一个模拟幸运数字投币机的游戏程序.此程序的用户界面中包括两个按钮,3个幸运数字框,表示获胜的数字图象以及Lucky 7标签. Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() '该调用是 Windows

$.extend 的一个小问题

  本文给大家记录的是个人在使用$.extend 的时候遇到的一个小问题,以及原因分析和解决方案,十分的实用,有需要的小伙伴可以参考下. 最近一直在搞移动端,也由于自己对jQuery比较熟悉,再加上Zepto提供了跟jQuery一样的API,所以就选择了Zepto作为开发框架. 由于是移动端开发,所以也应用了一些ES5新增的API,比如forEach,下面就是我写的代码的一些示例: ? 1 2 3list.forEach(function(v) { return !!v; }) 我天真的以为fo

关于HOOK的一个小问题

问题描述 关于HOOK的一个小问题 C++在使用HOOK的时候遇到了一些小问题. SetWindowsHookEx(WH_KEYBOARD_LLKeyboardProcGetModuleHandle(_T(""WillSetHook"")) 0 ); 设置没问题 都成功了. LRESULT CALLBACK KeyboardProc(int nCode WPARAM wParam LPARAM lParam){ //KeyboardHookStruct KHS =

ascii-C语言文件读写和类型转换的一个小问题

问题描述 C语言文件读写和类型转换的一个小问题 #include <stdio.h> #include <Windows.h> main() { FILE *f; int c; errno_t err = fopen_s(&f,"E:\workspace\TVPLAY\data\diffFrame\txts\file2.txt","r"); if (err) { printf("can't open filen")