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

图片说明

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

    class CDate{
    public:
            bool set(unsigned int year,unsigned int month,unsigned day);
            void print();
    private:
            unsigned int m_nYear;
            unsigned int m_nMonth;
            unsigned int m_nDay;
    };
    bool CDate::set(unsigned int year,unsigned int month,unsigned 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(2016,44,19);
            today.print();
        system("pause");
            return 0;
    }
0

1个回答

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 year,unsigned int month,unsigned day);
    void print();
private:
    unsigned int m_nYear;
    unsigned int m_nMonth;
    unsigned int m_nDay;
};
bool CDate::set(unsigned int year,unsigned int month,unsigned 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(2016,44,19);
    if(!set_res)
        cout << "set error" << endl;
    today.print();
    system("pause");
    return 0;
}
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于bool函数的一个小问题!
#include "stdio.h" rnbool ln(long a)rnrn if (a == 0)rn return 0; //0 不是2的n次方rn for (;(a&0x1) != 1;) //a最后一位为1的时候退出循环rn rn a = a>>1; //最后一位不为一则作除2运算rn rn if (a == 1) rn return 1;rn elsern return 0; //a最后一位为1, 但值却不为1则一定不可能是2的n次方rnrnrnvoid main()rnrn long temp;rn printf("Input a numer:");rn scanf("%d", &temp);rn printf("\n");rn if (ln(temp) == 1)rn printf("%d == 2^n\n", temp);rn elsern printf("%d != 2^n\n", temp);rnrnrnc(2) : error C2061: syntax error : identifier 'ln'rn不知道怎么错了.rn
跟我一起学C++之从C到C++(bool类型)
bool类型 C++新增类型,表示逻辑真与假 1.逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC++中为1个字节。 2.声明方式:boolresult;result=true; 3.可以当作整数用(true一般为1,false为0) 4.把其它类型的值转换为布尔值时,非零值转换为true,零值转换为false   代
C 判断 —— if...else 语句(bool变量、float变量、指针变量与“零值”进行比较)(else 到底与哪个 if 配对呢? if 语句后面的分号?)
1、bool 变量与“零值”进行比较 bool 变量与“零值”进行比较的 if 语句怎么写? bool bTestFlag = FALSE;//想想为什么一般初始化为 FALSE 比较好? A), if(bTestFlag == 0); if(bTestFlag == 1); B), if(bTestFlag == TRUE); if(bTestFlag == FLASE); C), if(b...
常用函数库——BOOL函数
//判断一个数是否为质数 Returns true if n is a prime number. bool IsPrime(int n) { // Trivial case 1: small numbers if (n &lt;= 1) return false; // Trivial case 2: even numbers if (n % 2 =...
C++ 关于bool函数的一个小问题
![图片说明](https://img-ask.csdn.net/upload/201605/19/1463664480_376120.png)nnn/*我写的这个程序是可以运行的,但我不清楚我写的bool函数是否符合题意,因为输入不符值后输出的是三串长长的数字...麻烦大神们帮我看一下需不需要改正~可以的话,可以详细讲讲bool函数的作用和用法吗?对这个函数还是不太熟悉...*/nnn class CDaten public:n bool set(unsigned int year,unsigned int month,unsigned day);n void print();n private:n unsigned int m_nYear;n unsigned int m_nMonth;n unsigned int m_nDay;n ;n bool CDate::set(unsigned int year,unsigned int month,unsigned day)n n if((month>12)||(day>31))n return false;n elsen m_nYear=year;n m_nMonth=month;n m_nDay=day;n return true;n n void CDate::print()n n cout<
使用bool变量的冒泡排序法
冒泡排序中的交换次数又称为反序数或逆序数,可用于体现数列的错乱程度 冒泡排序仅对数组中相邻元素进行比较和排序,让数组元素像水中的气泡一样逐渐上浮,进而达到排序的目的,复杂度数量级为O(N²)。 下面的代码实例实现数组的升序排列。 #include&amp;lt;iostream&amp;gt; #include&amp;lt;algorithm&amp;gt; using namespace std; int bubbl...
C++中以bool作返回值的函数的常见错误
// test.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h"bool t_return_false() { return false; }int t_omit_road() { if (t_return_false()) { return true; } // 遗漏的分支:编译器不报错,只给出告警!
c语言中的bool类型
以前一直在写c++,所以想当然的认为c语言中也有bool类型,然而并没有,只是在C99标准引入的新的关键字_Bool 和c++中的bool类似,如果在c中也想直接使用bool,可以添加stdbool.h头文件参考:http://blog.chinaunix.net/uid-8440532-id-34776.html
Python中关于函数的经典问题
#####函数的经典问题######     1. 编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数; def isPrimer(num): for i in range(2, num): if num%i == 0: return False return True num = int(input(...
bool 函数用法
  BOOL是布尔型变量,也就是逻辑型变量的定义符,类似于float、double等,只不过float定义浮点型,double定义双精度浮点型。在objective-c中提供了相似的类型BOOL,它具有YES值和NO值。布尔型变量的值只有 真(true)和假(false),可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。(百科) ...
C语言中实现bool(布尔型变量)
C语言中,本身没有bool(布尔型变量)。但是我们可以用其他方式来模拟。一、如果简单的使用char、int、long变量来表示0/1,则太浪费空间了。二、这里介绍一种巧妙的方式实现bool,高空间利用率。#define true 1 #define false 0 //--------------------------------------------联合体(共用体) 定义 typedef ...
电脑日常小问题
U盘里文件全是快捷方式怎么办https://jingyan.baidu.com/article/1612d500a2f78ce20f1eee4a.html
C语言中有bool变量吗?
1.C/C++中定义的数据类型:        C语言中定义了6种基本数据类型:short,int,long,float,double,char                                   4种构造类型:数组,结构体(struct),共用类型(union),枚举类型(enum)                                              ...
C语言 宏定义的方式实现“bool”数据类型的功能
C语言中默认不支持“bool”数据类型。 若想要使用,需要引用“stdbool.h”头文件。 这个头文件需要从网上下载或者自己手动建立(自行百度)。这里介绍一种使用宏定义的方式来实现“bool”数据类型的功能作用,示例代码如下: #include &amp;lt;stdio.h&amp;gt;#define bool int #define true 1 #define false 0int main() { bool
浅谈C语言中的布尔(bool)类型
浅谈C语言中的布尔(bool)类型
编制具有如下原型的函数prime,用来判断整数n是否为素数:bool prime(int n);而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数。
bool prime(int n); 而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数(通过调用prime来判断素数)。如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。 提示:i与d-i的和恰为偶数d,而且只有当i与d-i均为奇数时才有可能成为所求的“数对”。
bool数组初始化
输入memset(boolArray,0,sizeof(Array)); 头文件是#include<memory.h>; 如果初始化为全部false,c++有一个零初始化器(zero-initializer) bool boolArray[ARRAY_SIZE] = { 0 }; 这个零初始化器是通用的,其他类型的数组也可以通过这个初始化; char myarray[ARRAY_SIZE] =
bool型函数
bool介绍 C++中 bool函数如果值非零就为True,为零就是False。 比如写数据结构的时候,有时候需要判断一下链表是不是为空,这时候需要用到bool函数,再者,你看到bool就知道这个函数返回值只是用于判断真假。 bool函数返回的只有true和false。而int会返回各种数字,但是你关心的不是数字的多少,而是这个数字为不为0.所以这种情况用bool会更加简洁,规范,你看到bo...
关于布尔类型输入问题(bool cin C++)
C++环境中,bool类型按 ”非零为true,是零为false“ 规则执行。  在VS2015编译环境下,声明一个bool变量,如果没有定义,编译器会报错,声明bool类型时不会有默认值。  把bool类型变量作为输入变量时(用cin来赋值bool),当声明一个bool类型变量x后,默认该变量x为true,且当输入值为非零时,该变量x一直为true。而当声明一个bool类型变量y后,如果给它赋值...
C#中bool类型的分析好好学习
该文档主要是针对C#的理解,bool类型在C#中有着极其重要的地位,所以学号bool类型有助C#的理解。
返回bool的函数无return时返回true还是false
[code=&quot;c++&quot;] #include bool f() { } int main() { if(f()) printf(&quot;default return true!\n&quot;); else printf(&quot;default return false!\n&quot;); }[/code] 代码如上: 结果是什么? 在vs2008下,会是 default return...
VS2017 使用BOOL 和 TRUE 时要注意
因为 BOOL 和 TRUE是MFC的定义,需要加头文件#include &amp;amp;amp;lt;windows.h&amp;amp;amp;gt;,否则会报各种花式错误。
c++ bool类型函数
bool型函数指的是返回值为bool类型的函数,其调用方式和int 型函数没有太大的区别。 bool型变量的值只有 真 (true) 和假 (false)。bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。 示例: #include using namespace std; bool cmp(int a,int b){     
在main函数里面执行一个返回false的函数过程中遇到的坑
如下:#include<iostream> #include"queue.h" using namespace std; int main() { Queue<int> q(7); q.EnQueue(0); q.disPlay(); q.EnQueue(1); q.disPlay(); q.EnQueue(2); q.disPlay(); q.EnQ
bool型变量的赋值和运算
今天在调试一个程序的时候出现bug,搜索两个小时,终于找出,其实bug很幼稚,主要是基础不扎实,根源在于如题所述:bool型变量的赋值和运算 废话不多说,直接上代码 模型是:bool flags = false;                  flags |= 0x2;                  printf("flags:0x%0x", flags); 以前总以为bool通
数据结构及算法——带头结点的链式表操作集(C语言)
要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下:typedef struct LN
关于 BOOL 的小问题
题目: 计算输入文本的 字符,行数,单词数目rnrn[code=C/C++]#include rn#include rn#include rnint main (void)rnrnrn char ch;rn int charnum = 0;rn int linenum = 0;rn int phrasenum = 0;rn int prevnum = 0;rn bool isprimer = false;rn char prev = '\n';rn printf("Enter text to be analyzed(| to terminate) \n");rn while ((ch = getchar()) != '|')rn rn charnum++;rn if (ch == '\n')rn rn linenum++;rn rn if (isspace(ch) && !isprimer)rn rn phrasenum++;rn isprimer = false;rn rn if (isalpha(ch) && isprimer)rn rn isprimer = true;rn rn prev = ch;rn rn if (prev != '\n')rn rn prevnum = 1;rn rn printf("characters = %d , phrase = %d , lines = %d , prevlines = %d \n",charnum, phrasenum, linenum, prevnum);rn return 0;rnrn[/code]rnrn这样输出来 后 phrase 词语的值会比 实际 要多1 呢。。。 但是把 false 全部改成 true ,true 全部改成 false 后。又正确。。。实在不知道为什么
【搬运】C语言返回函数为布尔型,在if判断时出错。
【搬运】因为原来的博客要关,所以从原来的博客搬运过来。 背景是这样的,程序为c语言的程序,包含n多C文件,最终编译成一个动态连接库,对外提供两个void函数。 问题是这样的,程序刚开始执行时有一段(在a文件中) if(b()) { XXX; } else { xxxxx; } b()函数在另一个文件中定义。返回值为bool型,(bool类型在另一个头文件d中定义)...
C基础:布尔类型(BOOL) 关系运算符 switch
C基础:布尔类型(BOOL) 关系运算符 switch
在STM32F103编程中关于使用bool类型的问题
1、在STM32F103编程中关于使用bool类型的问题如果程序中使用到bool类型,但编译时提示类型未定义,这个时候可在头文件中加入下面一句:typedef enum {    FALSE = 0,    TRUE = 1} bool;即可解决。stm32f10x.h文件中还包含了常用的布尔形变量定义,如:1、typedef enum {RESET = 0, SET = !RESET} Flag...
金融小知识
1、会计为什么要计提(转载)
关于linux 下用gcc 无法编译 bool 类型的问题解决
Linux下的编译器gcc不支持bool类型的变量,因为c语言中本来是没有bool类型,只是有些编译器中自行添加了bool类型。 在linux下  c语言程序中一般通过int类型来代替bool类型。 总结 以下方法可以使用: 1:使用g++编译   g++ 2:进行宏定义      #define bool int 3:声明枚举类型  enum  bool{false = 0,tru
bool类型在C/C++混合编程时的处理
C语言中是没有bool类型的,C++中原生有bool类型的定义的。 在C/C++混合编程时,容易造成不好解决的编译错误,可以按如下方式处理: 在定义数据类型的文件中如下定义: #ifndef __cplusplus #define TRUE 1 #define FALSE 0 typedef unsigned char bool; #endif   ...
【Unity&C#】如何对一组Bool型变量进行判断
在实际的项目工程使用中,有的时候会使用大量相同类型  的 bool型 变量,使用数组把这些 相同 类型 的变量 放在一起,有利于 数据的操作 怎么使用 数组 来存放 相同类型 的变量,使用参考资料1,本文不赘述 逻辑图以及代码如下所示: (大图) 参考资料: 1. 【Unity&C#&数组】如何创建一个存放任何类型变量的数组 2. 3. 4
bool变量的使用(整理)
bool变量的使用(赋值,头文件) if(leap==1) if(leap==ture) if(leap) 三种表述方式的效果都是一样的
算法组合博弈
以下是关于博弈的一些小问题的讲解,sg函数的初步接触
BOOL,指针,int作为判断条件,在代码中的实现
一、BOOL与0值得比较 规则:不可将BOOL型变量直接与TRUE,FALSE,1,0比较。 根据BOOL型变量的定义,零值为假(记为FALSE),非零值都为真。 假设BOOL型变量名为flag,它与零值比较的标准If语句为:if(flag)//表示flag为真,if(!flag)//表示flag为假 其他的都属于不良风格: if(flag == TRUE) if(flag == FA
对结构体使用快排的一个例题
题意:是把颜色由多到少进行排序,从大到小的输出。 案例: Sample Input 3 3 red 1 green 2 yellow 3 1 blue 83 2 red 2 white 1 Sample Output yellow green red blue red white   #include &amp;lt;iostream&amp;gt; #include &amp;lt;cstdio&amp;gt; #in...
python中bool函数的取值
bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假。 1.当对数字使用bool函数时,0返回假(False),任何其他值都返回真。 >>> bool(0) False >>> bool(1) True >>> bool(-1) True >>> bool(21334) True 2.当对字符串使用bool
c语言中 通过枚举 模仿 bool的使用
#define _CRT_SECURE_NO_WARNINGS #include #include #include #define NUM 111 typedef int BOOL; typedef enum { false,true } BOOL; int main() { BOOL num = true; printf("%d\n", num); system("pause"

相似问题