Is this legal C++

This is a discussion on Is this legal C++ within the C++ Programming forums, part of the General Programming Boards category; This works in MSVC++ but not in Borland C++ Builder: Code: //Can contain a number, string or something class DataType ...

  1. #1
    S Sang-drax's Avatar
    Join Date
    May 2002
    Location
    Göteborg, Sweden
    Posts
    2,072

    Is this legal C++

    This works in MSVC++ but not in Borland C++ Builder:

    Code:
    //Can contain a number, string or something
    class DataType
    {
    public:
    
       DataType( double num);
    
       //Other constructors
    
    private:
    
      //Contains type and data
    };
    
    
    DataType foo( )
    {
      double bar = 1;
    
      return bar;
    }
    Borland wants me to write

    return DataType(bar);

    According to the ANSI/ISO standard, is this required?
    Last edited by Sang-drax : Tomorrow at 02:21 AM. Reason: Time travelling

  2. #2
    Just because ygfperson's Avatar
    Join Date
    Jan 2002
    Posts
    2,493
    Code:
    DataType foo( )
    {
      double bar = 1;
    
      return bar;
    }
    your return type here is DataType, but you're returning a double.

  3. #3
    BMJ
    BMJ is offline
    Banal internet user BMJ's Avatar
    Join Date
    Aug 2002
    Location
    Chicagoland
    Posts
    1,380
    lol.... er, I'm sorry

    Reading code back to yourself sometimes does help find errors...
    Code:
    Define function foo - no arguments with return type DataType
    Declare variable bar as double and set to 0
    Return from foo with bar
    I dunno, I've gotten used to reading my code, so the type mismatch sticks out to me

  4. #4
    Registered User
    Join Date
    Apr 2002
    Posts
    249

    Talking loool .... You remind me myself... lol

    One day,I did the same thing...

    That is a reg. programmer problem... it is ok ...
    C++
    The best

  5. #5
    S Sang-drax's Avatar
    Join Date
    May 2002
    Location
    Göteborg, Sweden
    Posts
    2,072
    I know perfectly well what the problem is.

    But because DataType has a constructor that takes a double, MSVC++ does the conversion automatically. Borland does not.

    You can write:
    double a = 1.5;
    DataType d = a;
    There's no more ambiguity in writing
    return a;
    Last edited by Sang-drax : Tomorrow at 02:21 AM. Reason: Time travelling

  6. #6
    Registered User
    Join Date
    Apr 2002
    Posts
    249

    Red face Good for you

    Now you got it right...
    C++
    The best

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. What is legal and what is illegal?
    By dlwlsdn in forum C Programming
    Replies: 3
    Last Post: 11-14-2008, 11:48 AM
  2. Replies: 1
    Last Post: 04-03-2008, 01:17 AM
  3. Legal Question: May I put my name(e-mail link) on the interface of a product
    By zahid in forum A Brief History of Cprogramming.com
    Replies: 7
    Last Post: 06-17-2003, 11:34 PM
  4. is this legal?
    By Shadow12345 in forum C++ Programming
    Replies: 6
    Last Post: 04-16-2002, 12:44 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21