poll for properties

Steven Schveighoffer schveiguy at yahoo.com
Tue Jul 28 15:19:53 PDT 2009


Please respond to this poll before reading other responses.

Read the following function:

void foo(Box b)
{
   if(b.xxx)
     b.fill(5);
   else
     b.yyy;
}

Assuming you have no idea what type Box is, what of the following options  
looks most natural for xxx in order to test to see if b has an element in  
it?

a) if(b.empty)
b) if(b.empty())
c) if(b.clear)
d) if(b.clear())

Answer:
=============


=============

What would you guess looks most natural for yyy in order to remove all  
elements from b?

a) b.empty;
b) b.empty();
c) b.clear;
d) b.clear();

Answer:
=============


=============

Which of the following functions looks incorrect?

void a(Box box)
{
    if(box.empty())
      box.fill(5);
    else
      box.clear();
}

void b(Box box)
{
    if(box.empty)
      box.fill(5);
    else
      box.clear;
}

void c(Box box)
{
     if(box.clear)
        box.fill(5);
     else
        box.empty;
}

void d(Box box)
{
     if(box.clear())
        box.fill(5);
     else
        box.empty();
}


Answer:
==============


==============

You read the documentation for Box, and it looks like this:

/**
  * check to see if a box is clear
  */
  bool clear();

/**
  * empty a box, returning true if the box had contents before emptying
  */
  bool empty();

Now knowing what the actual meaning of clear and empty are, indicate which  
version(s) of the function in the previous question would surprise you if  
it compiled.

Here are the functions again for reference:

void a(Box box)
{
    if(box.empty())
      box.fill(5);
    else
      box.clear();
}

void b(Box box)
{
    if(box.empty)
      box.fill(5);
    else
      box.clear;
}

void c(Box box)
{
     if(box.clear)
        box.fill(5);
     else
        box.empty;
}

void d(Box box)
{
     if(box.clear())
        box.fill(5);
     else
        box.empty();
}

Answer:
==============


==============

Do you think the meaning of a symbol with parentheses suggests something  
different than that same symbol without parentheses for the following  
symbols:

a) select
b) rock
c) keyboard
d) elevate

Answer:
==============


==============

Thank you for taking the poll.  I tried to be as objective as possible, if  
you don't think I was, please indicate why:



More information about the Digitalmars-d mailing list