Hmm, can't mark as solved as title is too long
Anyway, solved 
#include <LiquidCrystal.h>
LiquidCrystal lcd();
void setup()
{
//lcd.begin(16, 2);
}
void loop()
{
}
The above compiles without problems. Looking at the LiquidCrystal library, there is no constructor that does not take arguments. That's a confusion to start with; why does the compiler not complain?
Compile result
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\sterretje\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2A03_0X0043 -ide-version=10805 -build-path C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007 -warnings=all -build-cache C:\Users\sterretje\AppData\Local\Temp\arduino_cache_824963 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\sterretje\AppData\Local\Temp\arduino_modified_sketch_666196\sketch_mar03b.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\sterretje\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2A03_0X0043 -ide-version=10805 -build-path C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007 -warnings=all -build-cache C:\Users\sterretje\AppData\Local\Temp\arduino_cache_824963 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\sterretje\AppData\Local\Temp\arduino_modified_sketch_666196\sketch_mar03b.ino
Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "nul"
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src\LiquidCrystal.cpp
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp.o"
Compiling libraries...
Compiling library "LiquidCrystal"
Using previously compiled file: C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\libraries\LiquidCrystal\LiquidCrystal.cpp.o
Compiling core...
Using precompiled core
Linking everything together...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007/sketch_mar03b.ino.elf" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp.o" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\libraries\LiquidCrystal\LiquidCrystal.cpp.o" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007/..\arduino_cache_824963\core\core_arduino_avr_uno_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\Users\sterretje\AppData\Local\Temp\arduino_build_660007" -lm
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007/sketch_mar03b.ino.elf" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007/sketch_mar03b.ino.eep"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007/sketch_mar03b.ino.elf" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007/sketch_mar03b.ino.hex"
Using library LiquidCrystal at version 1.0.7 in folder: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
Sketch uses 444 bytes (1%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
To be continued
Part 2
Now I uncomment the line in setup() and it does not compile.
Compile result
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\sterretje\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2A03_0X0043 -ide-version=10805 -build-path C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007 -warnings=all -build-cache C:\Users\sterretje\AppData\Local\Temp\arduino_cache_824963 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\sterretje\AppData\Local\Temp\arduino_modified_sketch_620356\sketch_mar03b.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\sterretje\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2A03_0X0043 -ide-version=10805 -build-path C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007 -warnings=all -build-cache C:\Users\sterretje\AppData\Local\Temp\arduino_cache_824963 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\sterretje\AppData\Local\Temp\arduino_modified_sketch_620356\sketch_mar03b.ino
Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "nul"
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src\LiquidCrystal.cpp
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp" -o "C:\Users\sterretje\AppData\Local\Temp\arduino_build_660007\sketch\sketch_mar03b.ino.cpp.o"
C:\Users\sterretje\AppData\Local\Temp\arduino_modified_sketch_620356\sketch_mar03b.ino: In function 'void setup()':
sketch_mar03b:7: error: request for member 'begin' in 'lcd', which is of non-class type 'LiquidCrystal()'
lcd.begin(16, 2);
^
Using library LiquidCrystal at version 1.0.7 in folder: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
exit status 1
request for member 'begin' in 'lcd', which is of non-class type 'LiquidCrystal()'
I understand there is an error, I know what I did wrong and can solve it (by adding the missing arguments) but what does the error message exactly mean?
Hi,
But when you add the appropriate parameters it does.
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
}
Tom.. 
There's a partial explanation here: error-request-for-member-in-which-is-of-non-class-type
This:
LiquidCrystal lcd();
Looks like a function prototype to the compiler, so it's objecting to your attempt to treat it as an object. What is puzzling me though is that changing it to:
LiquidCrystal lcd;
Doesn't solve it as the stack overflow solution suggests. I would expect the compiler to provide a default constructor in this case, but instead it throws error:
error: no matching function for call to 'LiquidCrystal::LiquidCrystal()'
wildbill:
I would expect the compiler to provide a default constructor in this case, but instead it throws error:
error: no matching function for call to 'LiquidCrystal::LiquidCrystal()'
The compiler only generates a default constructor if no user-declared constructors of any kind are provided. Since LiquidCrystal has some constructors defined, there is no default constructor.
The original problem is that the compiler sees
LiquidCrystal lcd();
as the function declaration
LiquidCrystal lcd(void);
(a function taking no arguments that returns a LiquidCrystal object).
Nice. The mystery is solved 
Thanks people; forgot that the compiler could consider it being a function prototype.
Does not make sense to me in C++, but I will (have to) learn to live with it 
sterretje:
Thanks people; forgot that the compiler could consider it being a function prototype.
Does not make sense to me in C++, but I will (have to) learn to live with it 
in all fairness, the compiler was your friend and pointed to the problem, albeit a somewhat cryptic response vis à vis your error.
i find it helpful to do this:
/************************ CONSTANTS ************************/
// here
/****************** FUNCTION DECLARATIONS ******************/
// I do this even though IDE/compiler will do this for Arduino
/******************** GLOBAL VARIABLES ********************/
// here
/********************* GLOBAL OBJECTS *********************/
// here
so if you do see an error like that, it will help further to point you in the right direction...
I don't understand cryptic messages 
Thanks for the tip on organising the variables although I do not quite understand how it would help. I know where the error was, I know what the error was but did not understand the message (thinking too much that lcd was an object an not an function prototype)
My project consists of multiple .h and .cpp files; the presented code was just a simple demo.
sterretje:
I don't understand cryptic messages 
Thanks for the tip on organising the variables although I do not quite understand how it would help.
so if you are getting an error like request for member 'begin' in 'lcd', which is of non-class type 'LiquidCrystal()' and yet you have what you have tagged as a constructor in your header, it helps you to realize the error more quickly.
Writing classes often I come across this error frequently, and I'm usually scratching my head for a few minutes, I've forgotten yet again to create a default constructor. 